事件调度器

通过向 Event Dispatcher(事件调度器) 绑定一个或多个事件,您可以在调用该事件调度器后触发所有事件。这些事件可以在类蓝图中进行绑定,但 事件调度器也允许在关卡蓝图激活这些事件。

创建事件调度器

事件调度器是在Graph Mode 中的我的蓝图 选卡内进行创建的。

要想创建一个新的事件调度器:

  1. 点击 我的蓝图 选卡顶部的 New Event Dispatcher按钮。

  2. 我的蓝图 选卡中的列表尾部出现的名称文本域中,输入该事件调度器的名称。

    name_event_Dispatcher.png

设置属性

通过在 我的蓝图 选卡内选中该事件调度器,您可以在 详细信息 面板中编辑其属性。您可以为您的事件调度器设置工具提示信息和类目,且可以添加输入。

给您的事件调度器添加输入,允许您向绑定到您的事件调度器的每个事件发送变量。这使得数据不仅可以在您的类蓝图中流动,且可以在您的类蓝图和关卡蓝图 之间流动。

给您的事件调度器添加输入的过程和给函数、自定义事件及宏添加输入及输出的流程类似。如果您想使用和另一个事件相同的输入,那么您可以使用 Copy Signature from(复制签名) 下拉菜单来指定该事件。 要想给该事件调度器添加您自己的输入:

  1. 点击 详细信息 面板的 Inputs(输入) 部分的 New(新建) 按钮。

    new_input_Dispatcher.png

  2. 命名该新输入并使用下拉菜单设置其类型。在这个示例中,有一个 String(字符串型) 的输入参数 MyStringParam

    named_new_Dispatcher.png

  3. 您可以展开该参数项来设置默认值,并指出是否通过引用传递参数。

    expanded_input_Dispatcher.png

    要想改变节点边缘上的这个参数的引脚的位置,请使用展开的 详细信息 面板项的向下和向上箭头。

使用事件调度器

一旦您创建了事件调度器后,您可以添加事件节点、绑定节点及解除绑定连接到其上面的节点。尽管您可以在 我的蓝图 选卡中双击事件调度器选项来打开 事件调度器的图表,但是该图表是锁定的,您不能直接修改该事件调度器。绑定、解除绑定及分配方法都允许您向事件调度器的事件列表添加事件, 但调用方法将激活事件图表中存储的所有事件。

以下描述的所有节点,都可以添加到类蓝图及关卡蓝图中。除了Event(事件)节点外,每个节点都有一个 Target(目标) 输入引脚:

  • 在类蓝图中,该引脚自动设置为 Self 。这意味着对于该类来说该事件列表是变化的,所以每个类实例都将会发生变化。

  • 在关卡蓝图中,这个引脚必须连接到关卡中的一个类实例的引用上。这意味着事件列表将仅会针对那个类的特定实例进行改变。 关卡蓝图文档 解释了如何创建您需要的任何 Actor 引用的过程。

event_dispatcher_call_node.png

使用 Call 节点调用一个Event Dispatcher(事件调度器),将会触发绑定到该事件调度器的所有事件。对于每个事件调度器,您可以应用多个 Call 节点,且您既可以在 蓝图 中调用事件调度器也可以在 关卡蓝图 中进行调用。

bind_node.png

如果没有事件绑定到事件调度器,那么调用该事件调度器将不会产生任何效果。鉴于每个事件调度器都有一个和其相关的事件列表。向该列表中添加一个事件的方法是使用 Bind Event(绑定事件) 节点,从该列表中删除事件的方式是使用 Unbind Event(解除绑定事件) 节点。另外,通过使用 Unbind All Events(接触绑定所有事件) ,还可以解除当前绑定到事件调度器上的所有事件。

dispatcher_event.png

通过使用Event Dispatcher(事件调度器)菜单上的 Event(事件) 选项创建一个具有正确签名的自定义事件, 使得该事件可以绑定到该事件调度器上。 尽管这个事件节点的看上去和没有连接到 Bind 节点的自定义事件节点 类似, 但是当执行 Call [事件调度器名称] 节点时将永远不会触发该事件。