Unity生命周期方法

发布时间 2023-08-17 15:00:50作者: Nyanyan

详解
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:物体被销毁时执行。

Unity生命周期方法执行顺序详解_unity生命周期函数顺序_Vin129的博客-CSDN博客