语法区别
执行引脚的区别:
- 函数允许有一个执行引脚和一个输出引脚
- 事件只允许有一个执行引脚
- 宏允许有多个执行引脚和读个输出引脚
返回值
函数和宏允许有返回值,而事件没有返回值
需要注意的是:
函数可以有返回值也可以没有,如果我们不给函数设置任何返回值时,我们调用函数的地方会出现事件的标识(箭头)而不是函数的标识(f),如下图所示
无返回值的函数系统会当作一个事件来进行的。同样的,子类重载父类的无返回值函数后,也会当作事件来进行的。这可以说是UE4的BUG,也可以理解为特性处理,具体为何有待更深一个的研究。
延迟节点
事件和宏中可以使用UE4提供的延迟节点,函数不可以。
有部分节点是某个功能特有的,不止延迟节点,TimeLine节点只可以在事件中使用也是一个例子。
访问范围
- 函数和事件可以跨蓝图类访问,而宏只可以作为在定义的蓝图类内访问
- 函数可以被继承,而宏不可以被继承,子类无法使用父类的宏
- 宏库可以跨蓝图类访问
逻辑区别
函数和宏的调用是同步执行,需要等待函数或宏内部逻辑执行完毕才进行接下来的逻辑
事件是异步执行,触发事件的地方无需关心事件内部的逻辑,只需要触发事件即可执行接下来的逻辑。文章来源:https://www.toymoban.com/news/detail-417827.html
原因:因为函数或宏有返回值,调用函数或宏的后续逻辑可能与返回值有关联,所以需要等待它们调用结束方可继续接下来的逻辑;而事件无返回值,事件内部的逻辑与调用地方的逻辑没有任何关联,所以无需等待事件执行完毕即可执行接下来的逻辑,只需要在调用事件的时候发射事件即可。文章来源地址https://www.toymoban.com/news/detail-417827.html
到了这里,关于UE4蓝图之函数、事件、宏的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!