虚幻引擎 Event ActorEndOverlap 节点

Event ActorEndOverlap 是虚幻引擎中用于检测两个Actor停止重叠(即分离)的核心碰撞事件。下面是一个从零开始的完整使用案例,包含详细的操作步骤。

1. 创建蓝图Actor

  1. 在内容浏览器中右键,选择 蓝图类 (Blueprint Class)

  2. 在弹出菜单中选择 Actor 作为父类。

  3. 将其命名为 BP_OverlapTrigger(或你喜欢的名字),然后双击打开。

2. 添加并设置碰撞组件

为了让这个Actor能触发重叠事件,它需要一个碰撞体。

  1. 在蓝图编辑器左上角的 组件 (Components) 面板中,点击 添加 (Add) 按钮。

  2. 从下拉菜单中选择一个形状,例如 盒体碰撞 (Box Collision),并将其命名为 TriggerBox

  3. 在细节面板中,确保碰撞体已正确设置:

    • 碰撞预设 (Collision Presets):设置为 OverlapAllDynamic(与所有动态物体重叠)

    • 或者,展开 碰撞 (Collision) 分类,手动确保 生成重叠事件 (Generate Overlap Events) 复选框被勾选。这是事件触发的必要条件之一

3. 添加事件节点

  1. 在蓝图编辑器中,切换到 事件图表 (Event Graph) 标签页。

  2. 在图表中右键点击,在搜索框中输入 Actor End Overlap

  3. 从结果中选择 Event ActorEndOverlap 节点,将其添加到图表中

    • 注意:你会看到两种类似的事件,选择Actor级别的(另一个是OnComponentEndOverlap,用于组件级别)。Event ActorEndOverlap是Actor蓝图自身的快捷事件。

4. 编写响应逻辑

现在,你可以在这个事件后面连接任何你想执行的逻辑。例如,当有东西离开触发器时,在屏幕上打印一条信息:

  1. 从 Event ActorEndOverlap 节点的输出引脚(白色三角形)拖出一条线。

  2. 在松开鼠标后的搜索框中输入 Print String,选择该节点。

  3. 在 Print String 节点的 In String 输入框中,输入 "An Actor has left the trigger!"

  4. 你还可以利用该事件提供的 Other Actor 输出引脚,它代表了离开触发器的那个Actor。可以将其连接到其他节点进行更复杂的操作,比如判断离开的是否是玩家

5. 将蓝图放入关卡并测试

  1. 编译 (Compile) 并 保存 (Save) BP_OverlapTrigger 蓝图。

  2. 将 BP_OverlapTrigger 从内容浏览器拖拽到你的游戏关卡中。

  3. 运行 (Play) 游戏,控制你的角色走进这个触发器,然后再走出来。

  4. 当你走出触发器范围时,屏幕上应该会显示你设置的信息。

完整案例:自动开关门

这是一个非常经典的 ActorEndOverlap 应用场景

  • 核心逻辑

    • 当玩家进入门前的触发器 (OnComponentBeginOverlap) 时,播放开门动画

    • 当玩家离开触发器 (Event ActorEndOverlap) 时,播放关门动画

  • 实现步骤简述

    1. 创建一个新的Actor蓝图,命名为 BP_AutomaticDoor

    2. 添加一个 静态网格体 (Static Mesh) 组件作为门的模型。

    3. 添加一个 盒体碰撞 (Box Collision) 组件作为触发器,并调整其大小和位置

    4. 在事件图表中,为这个碰撞组件添加 OnComponentBeginOverlap 和 OnComponentEndOverlap 事件

    5. 创建一个 时间轴 (Timeline) 节点来控制门的旋转或平移

    6. 在 OnComponentBeginOverlap 事件后,连接时间轴的 Play 节点。

    7. 在 OnComponentEndOverlap 事件后,连接时间轴的 Reverse(反转)节点。

    8. 将时间轴的输出(例如门的旋转值)连接到门组件的 Set Relative Rotation 节点上。


常见问题排查

如果事件没有触发,可以检查以下几点:

  1. 碰撞预设:确保两个Actor的碰撞响应都设置为 重叠 (Overlap),而不是阻挡 (Block) 或忽略 (Ignore)

  2. 生成重叠事件:确保参与的两个Actor的碰撞组件都勾选了 生成重叠事件 (Generate Overlap Events)

  3. 物理模拟:如果Actor开启了物理模拟,可能需要额外设置,但对于简单的触发器通常不需要。

  4. Actor 销毁:请注意,如果一个Actor被销毁,也会触发另一个Actor的 EndOverlap 事件

总结

使用 Event ActorEndOverlap 的标准流程是:

  1. 创建:创建一个带有碰撞组件的Actor蓝图。

  2. 设置:将碰撞预设设为OverlapAllDynamic或手动勾选“生成重叠事件”。

  3. 添加:在事件图表中添加 Event ActorEndOverlap 节点。

  4. 编程:在节点后面连接你希望执行的逻辑。

  5. 测试:将Actor放入关卡,运行游戏进行测试。

感谢您的来访,获取更多精彩文章请收藏本站。

THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容