• 函数调用会等待函数执行结果,事件调用只是触发但不会等待

    事件是异步执行,触发后,会在新的线程中执行,所以可以使用 Delay,函数和宏的调用是同步执行,是单线程的,所以在函数中不能使用 Timeline、Delay 和 Http 请求 等操作。

  • 事件没有返回值,函数和宏可以有返回值

  • 函数和事件可以跨蓝图类访问,而宏只可以在定义的蓝图类内访问(宏库可以跨蓝图类访问)

  • 函数可以用局部变量,事件没有局部变量

  • 因为函数执行顺序有保证,所以优先使用函数

  • 函数可以被继承,而宏不可以被继承,子类无法使用父类的宏

  • 没有返回值的函数,在被子类 Overide 时,会变成事件

参考:

  1. UE4蓝图之函数、事件、宏的区别
  2. 【UE4笔记】Event&Function事件和函数的区别
  3. [UE4]函数和事件的区别