UE4 的事件系统
游戏(软件)开发中的各个模块或者说系统之间的通信机制,是相当重要的一个模块。常见的直接的函数调用,自不必说。而事件机制、信号槽机制则提供了更为灵活的通信方式。
UE4 也提供了类似的功能,即基于 EventDispatcher (事件分配器)的事件系统。
UE4 中的事件就是一个回调函数,跟其它函数和宏的区别可参见前文。
但是事件只能由声明的对象自己处理,比如一个 Actor 被鼠标点击了,可以覆盖它自己的 Event ActorOnClicked 实现相应逻辑。
如果是别的元素想在这个 Actor 被点击时执行一些逻辑要怎么办呢?这就是 EventDispatcher 的用武之地了。
比如跟上面的点击事件对应的有个 OnClicked 的 EventDispatcher,其它元素可以绑定一些自定义的事件函数到这个 EventDispatcher 上,这样当这个 Actor 被点击时,那些事件函数就也会被调用到了。
这里要注意的是,不同的 EventDispatcher 对应的事件参数是不一样的,在绑定自定义事件时要留心,一般不要自己声明,从 BindEvent 函数节点的 Event 引角拖出来,蓝图编辑器会帮助你生成正确的事件。
网友评论