原文档:
https://docs.unity.cn/cn/2019.4/Manual/ExecutionOrder.html
周期流程图
加载场景
在场景开始时,将会调用以下函数,且每个函数智慧调用一次:
Awake
在Start函数之前调用,如果游戏对象处于非活动状态,则在激活之后才会调用。
OnEnable
启用对象后立即调用此函数。在创建 MonoBehaviour 实例时(例如加载关卡或实例化具有脚本组件的游戏对象时)会执行此调用。
Reset
在编辑器中调用,在脚本首次附加到对象时以及使用 Reset 命令时初始化脚本的属性。
Start
在第一次帧更新之前调用,当脚本启用时才会调用。
帧之间
FixedUpdate
调用 FixedUpdate 的频度常常超过 Update。如果帧率很低,可以每帧调用该函数多次;如果帧率很高,可能在帧之间完全不调用该函数。在 FixedUpdate 之后将立即进行所有物理计算和更新。
在 FixedUpdate 内应用运动计算时,无需将值乘以 Time.deltaTime。这是因为 FixedUpdate 的调用基于可靠的计时器(独立于帧率)。
Update
每帧调用一次 Update。这是用于帧更新的主要函数。
LateUpdate
每帧调用一次 LateUpdate(在 Update_完成后)。LateUpdate 开始时,在 Update 中执行的所有计算便已完成。
LateUpdate 的常见用途是跟随第三人称摄像机。如果在 Update 内让角色移动和转向,可以在 LateUpdate 中执行所有摄像机移动和旋转计算。这样可以确保角色在摄像机跟踪其位置之前已完全移动。
协程
Update 函数返回后将运行正常协程更新。
销毁对象
OnDestory
对象存在的最后一帧完成所有帧更新之后,调用此函数.
退出
OnApplicationQuit
在退出应用程序之前在所有游戏对象上调用此函数。在编辑器中,用户停止播放模式时,调用函数。
OnDisable
行为被禁用或处于非活动状态时,调用此函数。
评论区