Event ActorEndOverlap 是虚幻引擎中用于检测两个Actor停止重叠(即分离)的核心碰撞事件。下面是一个从零开始的完整使用案例,包含详细的操作步骤。
1. 创建蓝图Actor
-
在内容浏览器中右键,选择 蓝图类 (Blueprint Class)。
-
在弹出菜单中选择 Actor 作为父类。
-
将其命名为
BP_OverlapTrigger(或你喜欢的名字),然后双击打开。
2. 添加并设置碰撞组件
为了让这个Actor能触发重叠事件,它需要一个碰撞体。
-
在蓝图编辑器左上角的 组件 (Components) 面板中,点击 添加 (Add) 按钮。
-
从下拉菜单中选择一个形状,例如 盒体碰撞 (Box Collision),并将其命名为
TriggerBox。 -
在细节面板中,确保碰撞体已正确设置:
-
碰撞预设 (Collision Presets):设置为
OverlapAllDynamic(与所有动态物体重叠)。 -
或者,展开 碰撞 (Collision) 分类,手动确保 生成重叠事件 (Generate Overlap Events) 复选框被勾选。这是事件触发的必要条件之一。
-
3. 添加事件节点
-
在蓝图编辑器中,切换到 事件图表 (Event Graph) 标签页。
-
在图表中右键点击,在搜索框中输入
Actor End Overlap。 -
从结果中选择 Event ActorEndOverlap 节点,将其添加到图表中。
-
注意:你会看到两种类似的事件,选择Actor级别的(另一个是
OnComponentEndOverlap,用于组件级别)。Event ActorEndOverlap是Actor蓝图自身的快捷事件。
-
4. 编写响应逻辑
现在,你可以在这个事件后面连接任何你想执行的逻辑。例如,当有东西离开触发器时,在屏幕上打印一条信息:
-
从
Event ActorEndOverlap节点的输出引脚(白色三角形)拖出一条线。 -
在松开鼠标后的搜索框中输入
Print String,选择该节点。 -
在
Print String节点的 In String 输入框中,输入"An Actor has left the trigger!"。 -
你还可以利用该事件提供的 Other Actor 输出引脚,它代表了离开触发器的那个Actor。可以将其连接到其他节点进行更复杂的操作,比如判断离开的是否是玩家。
5. 将蓝图放入关卡并测试
-
编译 (Compile) 并 保存 (Save)
BP_OverlapTrigger蓝图。 -
将
BP_OverlapTrigger从内容浏览器拖拽到你的游戏关卡中。 -
运行 (Play) 游戏,控制你的角色走进这个触发器,然后再走出来。
-
当你走出触发器范围时,屏幕上应该会显示你设置的信息。
完整案例:自动开关门
这是一个非常经典的 ActorEndOverlap 应用场景。
-
核心逻辑:
-
当玩家进入门前的触发器 (
OnComponentBeginOverlap) 时,播放开门动画。 -
当玩家离开触发器 (
Event ActorEndOverlap) 时,播放关门动画。
-
-
实现步骤简述:
-
创建一个新的Actor蓝图,命名为
BP_AutomaticDoor。 -
添加一个 静态网格体 (Static Mesh) 组件作为门的模型。
-
添加一个 盒体碰撞 (Box Collision) 组件作为触发器,并调整其大小和位置。
-
在事件图表中,为这个碰撞组件添加 OnComponentBeginOverlap 和 OnComponentEndOverlap 事件。
-
创建一个 时间轴 (Timeline) 节点来控制门的旋转或平移。
-
在
OnComponentBeginOverlap事件后,连接时间轴的 Play 节点。 -
在
OnComponentEndOverlap事件后,连接时间轴的 Reverse(反转)节点。 -
将时间轴的输出(例如门的旋转值)连接到门组件的 Set Relative Rotation 节点上。
-
常见问题排查
如果事件没有触发,可以检查以下几点:
-
碰撞预设:确保两个Actor的碰撞响应都设置为 重叠 (Overlap),而不是阻挡 (Block) 或忽略 (Ignore)。
-
生成重叠事件:确保参与的两个Actor的碰撞组件都勾选了 生成重叠事件 (Generate Overlap Events)。
-
物理模拟:如果Actor开启了物理模拟,可能需要额外设置,但对于简单的触发器通常不需要。
-
Actor 销毁:请注意,如果一个Actor被销毁,也会触发另一个Actor的
EndOverlap事件。
总结
使用 Event ActorEndOverlap 的标准流程是:
-
创建:创建一个带有碰撞组件的Actor蓝图。
-
设置:将碰撞预设设为
OverlapAllDynamic或手动勾选“生成重叠事件”。 -
添加:在事件图表中添加
Event ActorEndOverlap节点。 -
编程:在节点后面连接你希望执行的逻辑。
-
测试:将Actor放入关卡,运行游戏进行测试。
感谢您的来访,获取更多精彩文章请收藏本站。







暂无评论内容