首页 > 代码库 > 事件函数的执行顺序
事件函数的执行顺序
事件函数的执行顺序
在unity的脚本,有大量的脚本执行按照预先确定的顺序执行的事件函数。此执行顺序说明如下:
Editor
Reset: Reset调用来初始化脚本的属性,当它第一次附加到该对象,并且使用Reset命令时。
第一次Scene Load
scene启动 (一次为每个场景中的对象) 时,会调用这些函数。
Awake:此函数始终是开始任何职能之前调用,并且也是在一个预置实例化之后。(如果一个游戏对象处于非活动状态,Awake不会被调用当被激活时 或者一个附加到游戏对象的任何脚本中这个函数会被调用。
OnEnable:(如果对象处于活动状态时被调用):在对象被启用后,将调用此函数。发生这种情况是在创建一个MonoBehaviour实例时,例如当加载一个level或游戏对象带有脚本组件被实例化。
请注意对于对象添加到场景,所有脚本的清醒和 OnEnable函数将被调用之前启动、更新、 等统称为其中任何。当然,这不能强制执行时在游戏过程中实例化对象。
在第一帧更新之前
Start: Start第一帧更新仅当enabled了脚本实例之前,将调用 start。
为对象添加到场景,开始将对所有脚本更新之前,调用函数等统称为其中任何。当然,这不能强制执行时在游戏过程中实例化对象。
帧之间
OnApplicationPause:这称为框架末尾暂停检测到,有效地之间正常的帧更新。OnApplicationPause调用,允许的比赛来证明表明暂停的状态的图形后,将发出一个额外的帧。
Update Order
当游戏逻辑和交互,动画,相机位置,等您要跟踪的时有几个不同的事件,您可以使用。常见的模式是执行大多数任务里面的更新功能,但也有其他可以使用的函数。
FixedUpdate:FixedUpdate通常被称为比更新更频繁。它可以被多次调用每帧,如果帧率偏低,它可能不根本被称为帧之间如果帧率较高。FixedUpdate后立即发生的所有物理计算和更新。当应用在FixedUpdate内的运动计算,你不需要将你的Time.deltaTime的值相乘。这是因为在一个可靠的定时器,独立的帧速率上调用FixedUpdate。
Update:Update每帧调用一次。它是主要的主力框架更新的功能。
LateUpdate:LateUpdate是每帧,一次调用更新完毕后。LateUpdate开始时,将会完成在更新中执行的任何计算。常用的LateUpdate将以下的第三人称视角。如果你使你的性格,并且动转内更新,则可以在LateUpdate中执行所有摄像机的平移和旋转变换计算。这将确保该字符已经完全之前相机跟踪它的位置。
呈现
OnPreCull:在相机中挑选出现场之前调用。扑杀确定哪些对象是可见的相机。只是在扑杀发生之前,将调用消隐。
OnBecameVisible/OnBecameInvisible:当对象变为可见/不可见的任何相机时调用。
OnWillRenderObject:每个摄像头调用一次,如果对象是可见。
OnPreRender:在相机开始渲染场景之前调用。
OnRenderObject:所有普通的场景渲染完成后,调用你可以使用 GL类或 Graphics.DrawMeshNow,在这一点上绘制自定义几何。
OnPostRender:在相机完成渲染场景之后调用。
OnRenderImage (仅限专业版):在场景渲染完成允许屏幕图像的后处理后调用。
OnGUI:每帧响应 GUI事件调用多次。布局和重绘事件处理第一,紧接着的布局和键盘/鼠标的事件,为每个输入事件。
OnDrawGizmos用于可视化用于场景视图中绘制小玩意。
协同程序
更新函数返回后运行正常的协程的更新。协同是一个函数,可以暂停其执行 (收益率),直到完成给定的 YieldInstruction。不同用途的协同程序:
yield后所有的更新功能已呼吁下一帧,将继续协同。
yieldWaitForSeconds在指定的时间延迟之后,继续后所有的更新功能一直呼吁的框架
yieldWaitForFixedUpdate在所有的 FixedUpdate被称为对所有脚本后继续
yield WWW在WWW下载已完成后继续。
yieldStartCoroutine链协同,并将等待 MyFunc协同完成第一次。
当对象被销毁
OnDestroy:所有帧更新的对象的存在 (对象可能毁于响应 Object.Destroy或一幕结束时) 的最后一帧后,将调用此函数。
退出时
在你的场景中的所有活动对象上得到调用这些函数:
OnApplicationQuit:在应用程序退出之前,在所有的游戏物体上调用此函数。在编辑器中时用户停止攻击性影响调用。在网络播放器时关闭了 web视图调用。
OnDisable:调用此函数时的行为变得残疾人士或非活动状态。
脚本生命周期流程图
下面的关系图概述订购和重复事件函数在脚本的一生。
事件函数的执行顺序