【发布时间】:2018-01-30 02:09:29
【问题描述】:
我试图了解我在 MonoBehaviour 中遇到的令我困惑的事物的内部运作方式。
要定义一个事件,只需说出void EventName(),比如void Start() 或void MouseDown()
但是这个事件是如何注册到函数中的。它似乎不是由通常的事件处理程序
class.EventHandler += EventFunction()
您似乎也没有订阅观察者模式。就像 Start 和 OnMouseDown 被视为基于命名模式的构造函数。
那么这样的事件是如何实现的呢?
【问题讨论】:
-
Unity手册中有一篇文章:事件函数的执行顺序docs.unity3d.com/Manual/ExecutionOrder.html并没有真正描述它是如何在幕后实现的。基本上,简而言之,它只是在统一系统/子系统中注册的回调,并暴露给用户脚本。