Unity生命周期方法执行顺序详解
阅前提示
针对Unity2019的版本对生命周期进行详细的概述
适合人群:Unity使用者
阅读方式:浏览
图例
图为Unity2019.3官方示图
详解
Awake:当场景开始时(简单理解成游戏启动),若物体处于**状态(active)会被立即执行,仅执行一次。
OnEnable:接在Awake之后,且需要**状态下,被执行,当物体每一次被**时都会执行一次。
Reset:编辑器模式下,当脚本第一次被挂载,或是执行Reset操作时会被执行。
Start:早于所用的Update,在第一帧刷新开始前被调用,仅执行一次
FixedUpdate:区别于Update,FixedUpdate不取决于帧率进行调用。按时间(计时器)进行规则的调用,如果帧率高则可以间隔帧调用,如果帧率低则可能一帧被调用多次。
FixedUpdate一般被用于不受帧率印象的表现上。
Edit -> Project Settings -> Time 中可进行时间间隔设置。
OnTriggerXXX/OnCollisionXXX:物理碰撞与触发检测,在FixedUpdate之后,Update之前执行。
WaitForFixedUpdate:Coroutine中的等待方法,直到FixedUpdate结束后触发,在碰撞检测之后。
OnMouseXXX:鼠标输入检测。
Update:每帧更新,Update中利用Time.deltaTime来获取两帧间的时间间隔。
yield XXX:Coroutine 中的yield条件基本都在Update调用后执行。
LateUpdate:Update完成后执行,每帧调用一次。
Scene Rendering:场景渲染的方法基本上围绕Camera实施。
- OnWillRenderObject:当物体可以被摄像机所渲染,则会执行该方法,脚本在物体上也可生效。
- OnPreCull:当物体被剔除前执行,脚本需挂载在相机上。
- OnBecameVisible/OnBecameInvisible:当物体对于任何一个摄像机来说变得可见/不可见时执行。
- OnPreRender:在摄像机开始渲染场景前调用,脚本需挂载在相机上。 OnRenderObject:完成所有渲染后被调用。
- OnPostRender:渲染完成后被调用,脚本需挂载在相机上。
- OnRenderImage:完成图像渲染后被调用,脚本需挂载在相机上。
OnDrawGizmos:在编辑器模式下当渲染完成后被调用,用于绘制视图辅助图像。
OnGUI:响应GUI事件,该方法每帧可被多次调用,注:这与UGUI无关。
扩充:UGUI的绘制依赖于Canvas.willRenderCanvases ,该事件会在Canvas渲染前被执行。WillRenderCanvases触发位置在LateUpdate之后SceneRendering之前。
WaitForEndOfFrame:Coroutine中的等待方法,也意味着此时为一帧的结束标志。
OnApplicationPause:若应用被暂停,则该方法在帧的末尾会被执行。
OnApplicationQuit:应用退出时执行。
OnDisable:物体被禁用时执行,即进入未**状态(active)。
OnDestroy:物体被销毁时执行。
.
.
.
.
.
嗨,我是作者Vin129,逐儿时之梦正在游戏制作的技术海洋中漂泊。知道的越多,不知道的也越多。希望我的文章对你有所帮助:)