浅谈UE4中的事件调度器
本文的目的主要是讲解一下UE4中的事件调度器的用法,让读者能够快速的了解并掌握事件调度器。
首先,来说一下怎么新建一个事件调度器:
新建一个蓝图类,在蓝图类的左边有新建 事件调度器的按钮,点击一下进行新建,然后取名字。
新建事件调度器时,可以在事件调度器中添加参数,如下图:
当然,你的事件调度器具有参数,那么你绑定的事件,引擎也会自动给你添加上该参数
然后再说一下事件调度器的用法。如下图,事件调度器共有以下几种功能:调用、绑定、取消绑定、取消所有绑定、事件、分配。
其实,通常使用次数比较多的就是前四项:调用、绑定、取消绑定、取消所有绑定。
首先说明一下,定义事件调度器的蓝图,我称之为 本蓝图,其他的蓝图我称为其他蓝图。
先讲一下调用:通过名字就能知道,这个功能就是调用该事件调度器,让该事件调度器绑定的所有所有事件均得到执行。(可能说的比较绕,见到来说就是让所有绑定的实践都执行)调用事件调度器可以在定义事件调度器的蓝图(本蓝图)中进行调用(下图一),也可以获得该蓝图引用后,在别的蓝图(其他蓝图)中调用该事件调度器(下图二)。
再讲一下绑定:绑定的作用就是将一个事件进行绑定,通过绑定,可以使得事件调度器被调用时,被绑定事件也被调用。同样的,绑定事件也可以在本蓝图中进行,也可以在其他蓝图中进行。
下面讲一下取消绑定:与绑定相反,取消绑定就是取消事件调度器与事件的关联关系,当事件调度器被调用时,该事件将不会被执行。
取消所用绑定与上类似。
事件调度器的原理与接口相似,但也有自己独特的优势。接口的调用,只能调用一个实现,而事件调度器的调用,可以是一个事件被驱动,也可能是N个事件被驱动。
下面我贴一下我实验时用的小例子:
- 首先我在蓝图B中新建了“事件调度器一”,然后通过“1”来进行调用事件调度器。
- 然后我新建了蓝图类A ,以及他的三个子类蓝图_1,蓝图_2,蓝图_3。
- 在蓝图类A中,对事件调度器进行了绑定。
- 然后将蓝图类A的三个子类以及蓝图B拖进了世界。
- 游戏开始,按下 “1”,遍历A的所有子类,事件调度器共执行三次。