生命周期函数:
-
静态构造函数:
当程序集被加载的时候就被调用了,如果你的unity处于编辑状态时,此时你保存一个脚本(从而迫使重新编译),静态构造函数会立即被调用,因为unity加载了DLL。并且它将不会再次运行,永远只会执行一次,unity运行时,是不会再次执行了!在一个已部署的游戏上,这个构造器将会在unity加载过程的早期被调用! -
Awake:
唤醒事件,只执行一次
游戏一开始运行就执行 在Start方法之前被调用! 主要用于字段值的初始化工作,禁用脚本,创建游戏对象,或者 Resources.Load(Prefab) 对象
-
OnEnable:
启用事件,只执行一次,当脚本组件被启用的时候执行一次 -
Start:
开始事件,只执行一次 在Awake方法执行结束后执行,但在Update方法执行前执行,
主要用于程序UI的初始化操作,比如获取游戏对象或者组件
-
FixedUpdate:
固定更新事件,每隔0.02秒执行一次,
所有物理组件相关的更新都在这个事件中处理 不管当前机器忙不忙,都会保证每一帧执行一次!避免跳帧!固定更新。固定更新常用于移动模型等操作
-
Update:
更新事件,每帧执行一次
每一帧执行的,监听用户输入,播放动画,当机器忙或者性能差的时候,他会停止执行,会产生停顿的感觉,例如一个人本来在1米的位置,突然到了5米的位置上,产生了跳帧,而下面的FixedUpdate方法则相反!会一米一米的去执行!(自己调试发现,Update是先于OnGUI执行的,且执行一次Update之后,会执行两次OnGUI)
-
LateUpdate:
稍后更新事件,每帧执行一次,在Update事件执行完毕后再执行
可用于调整脚本执行顺序 例如:当物体在Update里移动时,跟随物体的相机可以在LateUpdate里实现
-
OnGUI:
GUI渲染事件,每帧执行两次
在这里面进行GUI的绘制,且GUI是每帧擦除重绘的!仅仅只是绘制!没有生命周期的概念!所有关于绘制GUI的代码,都要直接或者间接地写到OnGUI方法中!
-
OnDisable:
禁用事件,只执行一次,在OnDestory事件前执行,或者当该脚本组件被禁用后,也会触发该事件
脚本可用时被调用、如果脚本是不可用的,将不会被调用!
-
OnDestory:
销毁事件,只执行一次,当脚本所挂载的游戏物体被销毁时执行
生命周期调用顺序:
Awake-OnEnable-Start-FixedUpdate-Update-LateUpdate-OnGUI-OnDisable-OnDestory
完整的生命周期
版权声明:本文为W__YH原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。