UE4复习3_信息交互(下)

发报机 (event dispatcher)

发报机可以实现命令在关卡蓝图和类蓝图间的相互传递。

先介绍一下发报机的六个命令。

新建一个Event Dispatcher后,拖拽到蓝图中,会发现有六个命令。

 

第一个命令是call 相当于调用函数的 call funcation

第二命令是bind,必须绑定一个事件,当有event dispatcher被call时,就会触发所绑定的事件。

如下,实现了按X后通过MyDispatcher 调用自定义事件CE_rotate

绑定CE_rotate的操作在游戏一开始就完成了,我们可以把调用myDispatcher的命令放到关卡蓝图中。

这样也实现了按X让BP_N进行旋转的操作。

 

 

第三个命令unbind,解除某事件的绑定

第四个命令unbind all,解除所有事件的绑定

如下图,按Q之后原本绑定在myDispatcher的CE_rotate事件就会解除绑定,再按X进行调用也不会旋转了。

 

 最后两个操作用处不大。

第五个命令是event,等价于我们直接创建一个自定义事件。

第六个命令是assign,等价于我们创建一个与DIspatcher相连的自定义事件。

 

 

蓝图类之间的事件调度。

在BP_M中,绑定一个自定义事件在BP_N的Dispatcher上。

同时在BP_N中,当它旋转完成后,调用call Dispatcher。所有与之绑定的事件都会被触发。

 

 

 

 

 上图中BP_M的逻辑也可以写在关卡蓝图中,并且还有一种简单的写法。

在场景中选择BP_N,然后在关卡蓝图中点击右键,输入Dispatcher的名称,可以通过MyDispatcher(BP_N)直接绑定事件。

如下图,上下两种写法的作用是等价的。

 

 

 

总结,在某个类蓝图中创建的Dispatcher,可以在其他类蓝图(新建变量)或者关卡蓝图(创建引用)中进行绑定或者调用。一旦当Dispatcher被call,所有与之绑定的事件都会被触发。

 

ps.不止事件可以绑定到dispatcher上,其实函数也可以。

create event 可以将函数转换成事件绑定到Dispatcher上。

 

posted @ 2020-04-16 18:19  vantablack  阅读(389)  评论(0编辑  收藏  举报