Unity 脚本中有很多按预设顺序以脚本身份执行的事件函数。
其执行顺序例如以下:
启动场景时调用这些函数(为场景中的每一个对象调用一次)。
(假设游戏对象 (GameObject) 在启动期间处于非活动状态,则直到其处于活动状态时或调用加入至其本身的不论什么脚本中的函数时,再调用 Awake 函数。
)
上述现象会在创建了实例化的 MonoBehaviour 后发生,比如载入了级别或对含脚本组件的游戏对象 (GameObject) 进行实例化后。
有几个不同的事件有助于追踪游戏逻辑与交互、动画、相机位置等内容。
经常使用的方法是执行Update() 函数中的大部分任务。但也可使用其它函数。.
程序调用FixedUpdate() 后将马上运行全部物理计算和更新。在FixedUpdate() 中应用移动计算时。无需将您的值与 Time.deltaTime 相乘。
这是由于。程序是在可靠的计时器上调用FixedUpdate(),与帧速率无关。
Update() 中运行的全部计算都将在LateUpdate() 開始之前结束。LateUpdate() 的常规使用记录由第三人称相机跟踪。假设在Update() 中移动和旋转角色,则可在 LateUpdate() 中计算全部相机移动和旋转。这将确保在相机跟踪其位置之前完整移动该角色。
OnPreCull 函数调用发生在剔除之前。
程序首先将处理 Layout 和 Repaint 事件。然后再处理每一个输入事件的 Layout 和 keyboard/鼠标事件。
正常的协同程序更新是在返回 Update 函数之后执行。
协同程序是可自行停止执行 (yield),直到给定的 YieldInstruction 结束再继续执行的函数。协同程序 (Coroutines) 的不同用途:
程序将在场景的全部活动对象上调用这些函数:
在编辑器中。用户停止播放模式时,程序将调用此函数。
在网页播放器中。此函数会在网页视图关闭时调用。
脚本的生命周期流程图

在Unity3D脚本中,有几个Unity3D自带的事件函数依照预定的顺序运行作为脚本运行。其运行顺序例如以下:
编辑器(Editor)
Reset最经常使用于在见识面板中给定一个默认值。
第一次场景载入(First Scene Load)
这些函数会在一个场景開始(场景中每一个物体仅仅调用一次)时被调用。
注意:当一个场景被加入到场景中,全部脚本上的Awake()和OnEable()函数将会被调用在Start()、Update()等它们中不论什么函数被调用之前。自然的,当一个物体在游戏过程中被实例化时这不能被强制运行。
第一帧更新之前(Before the first frame update)
对于那些被加入到场景中的物体,全部脚本上的Start()函数将会在它们中不论什么的Update()函数之前被调用,自然的,当一个物体在游戏过程中被实例化时这不能被强制运行。
在帧之间(In between frames)
更新顺序(Update Order)
当你在跟踪游戏逻辑和状态。动画,相机位置等的时候。有几个不同的事件函数你能够使用。
常见的模式是在Update()函数中运行大多数任务,可是也有其他的函数你能够使用。
LateUpdate经常使用为第三人称视角相机尾随。
渲染(Rendering)
剔除是取决于哪些物体对于摄像机是可见的。OnPreCull仅在剔除起作用之前被调用。
协同程序(Coroutines)
正常的协同程序更新是在Update函数返回之后执行。
一个协同程序是能够暂停执行(yield)直到给出的依从指令(YieldInstruction )完毕。写成的不同运用:
销毁(When the Object is Destroyed)
退出游戏(When Quitting)
这些函数会在你场景中全部的激活的物体上调用:
原文:http://www.cnblogs.com/lytwajue/p/6708234.html