- 委托(delegate)
event / Action 的底层实现,适用性最广。 - 事件(event / UnityEvent)
对委托的封装,受限制的委托。具体表现为:
(1)定义事件的类中,才可以进行 =null / Invoke() 操作。
(2)外部类可以进行 += / -= 操作,但不能进行 =null / Invoke() 操作。 - Action / Function
Action:无参数无返回值的委托,相当于一个语法糖(定义无参数无返回值的委托时,如果懒的取名字就用它)。

Func:与 Action 类似,但是可以有返回值。

- UnityEvent / UnityAction
UnityEvent:Unity 封装事件(好处是脚本挂载到对象后可在 Inspector 面板添加处理函数)


UnityAction:Unity Action(定义和 C# Action 没有任何区别,但 UnityEvent 的 AddListener() 只接受该类型参数。大概是为了命名的统一性吧?) - 参考文档
委托与事件