这些活动如何在MonoBehaviour中订阅

时间:2018-01-30 02:09:29

标签: c# unity3d

我试图理解我在MonoBehaviour遇到的令我困惑的事情的内部运作。

要定义一个事件,所有人都需要做void EventName() void Start()void MouseDown()

但是如何将此事件注册到该功能。它通常不是通常的

的事件处理程序
class.EventHandler += EventFunction()

似乎也没有您订阅的观察者模式。就像StartOnMouseDown被视为构造函数,它基于命名模式。

那么这样的事件是如何实现的?

1 个答案:

答案 0 :(得分:1)

核心Unity引擎不是用C#编写的。它是用C / C ++代码编写的。这样,底层实现比用户在其上编写的C#脚本更快,更优化。

Unity可以让您的托管脚本向本机核心提供指令。 StartAwakeUpdate等生命周期事件由此桥接过程专门处理。这就是为什么它们与您过去常常在C#中看到的事件处理程序不同的原因。

这个Unity开发blog post概述了脚本在Unity的现代版本中的工作原理