区别
函数和事件在很多时候都可以混用。
函数可以有返回值,而事件不能有返回值。
函数可以有局部变量,而事件没有。
函数定义独占蓝图整个页面,而多个事件可以共享同一个页面。
函数中不能执行 delay
、timeline
等延迟操作,而事件可以。
函数如果不添加返回值,在蓝图中调用的时候,和调用事件的节点图标是一致的。但添加了返回值,图标就会变成函数的标识。所以调用没有返回值的函数和调用事件,在节点上是没啥区别的。
在老版本的虚幻编辑器里,重写父类没有返回值的函数,会变成事件。
函数调用会立即执行并等待结果,事件调用只是触发。
函数执行在同一线程,事件执行在不同线程。但是如果事件中没有延迟等操作,和函数执行也是一样的。
测试执行顺序
比如在调用一个带 delay
延迟的事件,然后再调用一个函数。函数的执行不会等待事件执行完毕才执行,也就是事件中的 delay
后面的流程,相当于异步执行,不会阻塞调用事件节点后面的节点。
下图的打印顺序为:1、3、2
选择建议
因函数的执行顺序有保证,所以优先使用函数。避免出现一些因为延迟而导致的执行顺序错误的问题。