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 XXXCoroutine 中的yield条件基本都在Update调用后执行。


LateUpdateUpdate完成后执行,每帧调用一次。


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,逐儿时之梦正在游戏制作的技术海洋中漂泊。知道的越多,不知道的也越多。希望我的文章对你有所帮助:)


猜你喜欢

转载自blog.csdn.net/qq_28820675/article/details/106748111