这里小龙带大家简单了解生命周期,小龙有哪里说的不对还请大佬指点
编译器阶段 - Reset
Reset在点击检视面板的Reset按钮或者首次添加该组件调用。(简单描述)
初始化阶段
Awake(唤醒事件)- 当脚本实例被载入时调用; 常用于游戏开始之前初始化变量或游戏状态。(只执行一次)
OnEnable(启用事件)- 当对象被激活时调用函数且只执行一次,通俗点说就是脚本组件激活时调用一次。
Start(开始事件)- 只在脚本实例启用时掉用一次,总在Awake后Update前执行。
物理阶段
FixedUpdate(固定更新事件)- 基于一个定时器被调用,它几乎等于真实时间0.02秒执行一次,执行N次,不受电脑帧率影响;常用于物理运动、碰撞等类似的物理性质就可以用FixedUpdate。
游戏逻辑
Update(更新事件)- 每帧执行一次、受电脑帧率影响、执行N次; 常用于非物理对象的移动,设备输入检测。
LateUpdate(稍后更新事件)- 执行N次,在所有的Update执行完毕后执行; 常用于摄像头跟随(如果这种类似的操作都在Update里执行,摄像头抖动或者一卡一卡的)。
渲染阶段
OnGUI(GUI渲染事件)- 执行次数是Update的2倍。
关闭阶段
OnDisable(警用事件)- 只行执一次,在OnDestroy前执行,脚本挂的物体禁用时调用。
OnDestroy(销毁事件)- 只行执一次,脚本挂的物体销毁时调用。
注意事项:1.Awake和Start在脚本启用时,会在首次更新之前调用。
2.生命周期事件,都是由Unity定义好的,且Unity会自动调用;Unity调用事件的顺序与代码书写顺序无关。
3.当一个物体没有被初始化过(也就是一直隐藏状态),如果物体初始化了会调用Awake、Start和OnEnable,在之后隐藏物体再显示物体就只会调用OnEnable。