“我正在参加掘金社区游戏创意投稿大赛个人赛,详情请看:游戏创意投稿大赛”
蓝图使用委托(Delegate)
蓝图(Blueprint)所使用的委托中,当其绑定到 Set Timer by Event
和 Event Dispatcher
节点时,其中对应存在着该委托所使用的事件。
这一次,我用 Set Timer by Event
创建了一个例子,但是即使在使用 Event Dispatcher
时,也可以以相同的方式进行绑定。
通常你不能将函数或宏直接将委托添加到蓝图参数中。
那该如何处理呢?答案是 “通配符” !
如何通过通配符使用委托
宏有一个名为通配符(Wildcard
)的类型,它可以用作参数。
它有点类似 C++ 中的模板。
通配符被用于 Blueprint 的 foreachloop
等节点。
例如,如果你想创建一个通配符,意在在 1 秒后执行一个自定义的事件(Event
),它将如下所示。
之后,如果将 Event
(作为参数)连接到通配符,通配符类型将被识别为 委托,如下图所示。
执行结果与使用普通的 set Timer by Event
设置 为 1.0 时相同。
如何通过函数/宏中使用委托
接下来,将展示如何在函数和宏中使用委托,但是由于是 hacky 的方法,我们 无法保证 操作的安全性。
从函数或宏节点图中调用 “Set Timer by Event
” 节点。 然后,通过连接事件引脚(Event Pin
)到输入,可以注册委托(Delegate
) 将其作为一个输入 Event
参数。
函数/宏都可以通过相同的操作注册委托。
这是 UE4 的一个小技巧。