UE蓝图中函数、事件与宏的区别

1,084 阅读1分钟

函数与事件的区别

  • 函数无法使用 Delay(函数调用完后就销毁,Delay 的异步逻辑则无法被通知到),事件可以。
  • 函数可以有返回值,事件没有。
  • 函数有局部变量,事件没有。
  • 事件可以被标记为网络同步,函数无法被标记网络同步。
  • 事件可以被绑定到调度器上,函数不行。
  • 事件只能是 Public 的,不能进行修饰。
  • 事件不能构建成常事件,函数可以定义为常函数。

函数与宏的区别

  • 宏本质是替换操作,但函数是逻辑单元。
  • 宏支持多逻辑针脚输入,并支持多逻辑针脚输出(宏不会被编译为逻辑单元)。
  • 过多使用宏将导致蓝图中节点膨胀,函数由于被编译诚逻辑单元,所有调用的地方均使用一个逻辑单元,因此不会膨胀。
  • 宏支持通配符传入传出,使类型传递更加灵活。
  • 在函数中调用宏,宏的 Local Variable 将变成函数的局部变量,在时间图表中调用宏, Local Variable 将变成成员变量。
  • 宏无法被重写,函数可以被重写(宏是无形的,函数是有形的)。
  • 类内部宏无法在外部通过成员对象调用,函数可以。
  • 复杂逻辑在函数中编写,结组宏的特点(支持多执行针脚输入)编写灵活的分支流程控制。