Unity~脚本的声明周期

版权声明:盗版必究 https://blog.csdn.net/jinxiul5/article/details/82189691

注意
脚本执行顺序:
多个脚本挂载,先执行后挂载.
Awake,OnEnable,顺序执行,在次执行其他脚本的Awake,OnEnable,其他同时执行

单个脚本生命周期执行顺序:

Awake: 只会被调用一次,在Start方法之前被调用! 主要用于字段值的初始化工作,禁用脚本,创建游戏对象,或者Resources.Load(Prefab) 对象

OnEnable:脚本可用时被调用、如果脚本是不可用的,将不会被调用!

Start: 只执行一次,在Awake方法执行结束后执行,但在Update方法执行前执行, 主要用于程序UI的初始化操作,比如获取游戏对象或者组件.

FiexdUpdate:固定帧速率,不管当前机器忙不忙,都会保证每一帧执行一次!避免跳帧!固定更新。固定更新常用于移动模型等操作。

Update:每一帧执行的,监听用户输入,播放动画,当机器忙或者性能差的时候,他会停止执行,会产生停顿的感觉,例如一个人本来在1米的位置,突然到了5米的位置上,产生了跳帧,而下面的FixedUpdate方法则相反!会一米一米的去执行!(自己调试发现,Update是先于OnGUI执行的,且执行一次Update之后,会执行两次OnGUI).

LateUpdate:先执行Update,然后才去执行lateUpdate(Update方法执行完,必定接着执行LateUpdate,而Update和FixedUpdate方法的执行顺序不确定,而且有时候FIxedUpdate执行了多帧,而Update却只执行了一帧,这就是因为跳帧的缘故造成的(取决于你的机器性能)!),如果现在有100个脚本,分别有100个 Update()函数,其中只有一个LateUpdate,那么在同一帧中,等待100个Update()执行完后,才执行这一个LateUpdate()。

OnGUI:在这里面进行GUI的绘制,且GUI是每帧擦除重绘的!仅仅只是绘制!没有生命周期的概念!所有关于绘制GUI的代码,都要直接或者间接地写到OnGUI方法中!

OnDisable:如果脚本被设置为不可用将会被执行,程序结束时也会执行一次!

OnDestroy:当前脚本销毁时调用!

扫描二维码关注公众号,回复: 2952817 查看本文章

猜你喜欢

转载自blog.csdn.net/jinxiul5/article/details/82189691
今日推荐