事件分发器

在蓝图中调用的事件如何在另一个蓝图中执行事件。

Windows
MacOS
Linux

事件分发器 被调用时,也将执行实施事件且事件与事件分发器绑定的全部蓝图。换言之,事件分发器被调用时,与其绑定的所有事件也将被调用,以便从单一源同时执行多个事件。

此页面将说明如何设置事件分发器并将事件绑定到事件分发器。

在此例中,玩家按键后灌木丛中将出现火焰粒子效果。

此指南使用启用 新手内容Blueprint Third Person 模板。

  1. 内容浏览器 中的 Content/ThirdPersonBP/Blueprints 文件夹下,打开 ThirdPersonCharacter 蓝图。

    EventD_1.png

  2. 点击 My Blueprint 窗口中的 Add Event Dispatcher 按钮并将其命名为 StartFire

    EventD_2.png

  3. 在图表窗口中 单击右键,添加一个 F 按键事件。

  4. StartFire 事件分发器拖入图表并选择 Call

    EventD_3.png

  5. F 按键事件和 Call StartFire 事件分发器连接起来。

    EventD_4.png

    F 键按下时,事件与此事件分发器绑定的蓝图也将被执行。

  6. 编译保存,然后关闭蓝图。

  7. Content BrowserContent/StarterContent/Props 中,将 SM_Bush 蓝图拖入关卡。

    EventD_5.png

  8. 点击主工具栏的 Blueprints 按钮,然后选择 Open Level Blueprint

    EventD_6.png

  9. 在图表中 单击右键 并选择 Create a Reference to SM_Bush 节点。

    EventD_7.png

    此操作将在关卡中为 SM_Bush 创建一个引用。

    如画面中不存在上图列出的节点,在关卡中选择 SM_Bush 并重试。

  10. 在图表中 单击右键 并添加 Event Begin PlayGet Player Character 节点。

  11. Get Player Character 的引出连线后搜索并添加 Cast To ThirdPersonCharacter 节点。

    EventD_8.png

    这样我们便能访问 ThirdPersonCharacter 蓝图中的事件、函数、变量或属性。

    蓝图中的转换 文档中可查阅蓝图投射节点的更多内容。

  12. As Third Person Character 引脚的引出连线后搜索并使用 Assign Start Fire 节点。

    EventD_9.png

    此操作将新建两个节点,Bind EventCustom Event。在角色蓝图中调用事件分发器时,Custom Event 和与其相连的任意事件均会被执行(因它们与事件分发器绑定)。事件与事件分发器绑定的蓝图也将被执行。

  13. Custom Event 的引出连线后添加 Spawn Actor from Class 节点(Class 设为 Blueprint_Effect_Fire)。

  14. SM_Bush 的引出连线拉到 Get Actor Transform,将其用作 Spawn Actor 节点的 Spawn Transform

    EventD_10.png

    所有节点连接完毕后,图表外观和上图相似。

  15. 点击 Compile,关闭关卡蓝图,然后点击 Play 在编辑器中开始游戏。

    EventD_11.png

    按下 F 键后,火焰特效将出现在灌木丛中。

如需了解 事件分发器 使用和用例范例的更多内容,请查阅下方的 相关页面

Tags
Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback