3.调整 Actor 的物理与碰撞

现在,我们将在 细节(Details) 面板内调整 Actor 的 物理模拟 以及 碰撞 属性。 通过调整这些设置,我们可以定义一个 Actor 如何对游戏环境中的其他 Actor 作出反应。 我们可以将 Actor 设置为模拟物理,这将允许我们在环境中撞击和推动该 Actor,以及定义它与其他 Actor 发生碰撞时如何作出反应。

步骤

  1. 选中 Shape_Sphere,然后在 细节(Details) 面板中的 碰撞(Collision) 下,选中 模拟生成碰撞事件(Simulation Generates Hit Events) 复选框。

    Details18a.png

    选中此选项后,我们可以确定这个球体是否会与某些物体碰撞。

  2. 并且,在 碰撞(Collision) 部分中,请单击 碰撞预置值(Collision Presets)下拉菜单并选择 物理 Actor(Physics Actor)

    Details18b.png

    因为我们要模拟物理,此设置将处理物理反应。

  3. 物理(Physics) 部分中,选中 模拟物理(Simulate Physics) 复选框。

    Details18c.png

    您还可以在此处设置其他选项,例如 阻尼或惯性 ,此选项可影响模拟 Actor 物理的方式,但是,在本教程中,我们仅模拟物理,以使该 Actor 在游戏期间可以受物理影响。

    如果您现在是在编辑器中游戏,您将看到球体滚下楼梯;由于这个球体是物理 Actor,您可以走近并推动它。为了测试碰撞事件,我们将使用 蓝图 - 可视化脚本 在球体撞上玩家时将其杀死。

  4. 在关卡中选中球体后,请单击 主工具栏 中的 蓝图(Blueprints) 按钮,然后选择 打开关卡蓝图(Open Level Blueprint)

    Details19.png

  5. 在图形窗口中 单击鼠标右键,然后在 为球体形状添加事件(Add Event for Shape Sphere)碰撞(Collision) 下方,选择 添加 Actor 碰撞(Add On Actor Hit) 事件。

    Details20.png

    现在,当球体撞上物体时,将触发事件。

  6. OnActorHit 节点,拖出 其他 Actor(Other Actor) 引脚并搜索 投射到 ThirdPersonCharacter(Cast To ThirdPersonCharacter),然后在窗口中将其选中。

    Details21.png

    此时,我们将检查所碰撞的另一个 Actor 是否为 ThirdPersonCharacter(或者与此模板配合使用的玩家)。

  7. 转换(Cast) 节点拖出 作为第三人物角色(As Third Person Character) 引脚并进行搜索,然后添加 销毁 Actor(Destroy Actor) 节点。

    Details22.png

    如果 ThirdPersonCharacter 就是所碰撞的 另一个 Actor,那么将销毁 ThirdPersonCharacter(杀死玩家角色)。

  8. 单击窗口左上角的 编译(Compile) 按钮以完成蓝图,然后关闭窗口。

    Details23.png

  9. 主工具栏 中,单击 游戏(Play) 按钮以在编辑器中游戏。

    Details24.png

最终结果

现在,在编辑器中游戏时,您可以使用 WASD 来移动角色,并使用 鼠标 来操纵摄像机。您应该会看到球体现在滚下楼梯,如果您走近它,它应该会杀死角色,从而使角色消失(您被“杀死”后,可按 Esc 键退出游戏会话)。

通过上述过程,您已初步了解如何通过主关卡编辑器的 细节(Details) 面板编辑 Actor 的属性。有关更多信息,请参阅以下相关主题。