脚本的生命周期
- 何为生命周期?从字面上可以理解成事物从出生到死亡的过程,而对应到脚本中指的就是从创建到销毁的整个过程。
- 在Cocos Creator中,每个脚本组件都有自己的生命周期。引擎为脚本组件提供了生命周期的回调函数,我们只需要在cc类中定义对应的函数即可。当执行到相应的周期时,就会调用该函数。
- 脚本组件的生命周期回调函数包括:onLoad、onEnable、start、update、lateUpdate、onDisable、onDestroy。
1.onLoad
onLoad回调函数会在脚本组件的初始化阶段被调用,比如所在的场景被载入或者所在的节点被激活。 在onLoad阶段,可以获取场景中的其他节点,以及与节点关联的资源数据。 onLoad总会在调用start方法前被执行,可以用于设置脚本的初始化顺序。通常我们会在onLoad阶段做一些与初始化相关的操作。
2.onEnable
当组件的enabled属性从false变为true时, 或者所在节点的active属性从false变为true时,都会激活onEnable回调函数。 如果节点第一次被创建且enabled属性为true,则会在onLoad之后、start之前调用onEnable回调函数。
3.start
start回调函数会在第一次激活组件之前,也就是第一次执行update之前被触发。 start通常用于初始化一些中间状态的数据,这些数据可能会在update时发生改变,并且被频繁地进行enable和disable操作。
4.update
update回调函数会在游戏每一帧渲染之前被触发。 游戏开发的一个关键点是在每一帧渲染前更新物体的行为、状态和方位。这些更新操作通常都被放在update回调函数中。
5.lateUpdate
lateUpdate回调函数会在游戏每一帧渲染之后被触发。 update会在所有的动画更新之前被执行, 但如果我们要在动效(如动画、粒子、物理等)更新之后进行额外的操作, 或者希望在执行完成所有组件的update之后进行其他操作,就需要用到lateUpdate回调函数。
6.onDisable
当组件的enabled属性从true变为false时,或者所在节点的active属性从true变为false时,会激活onDisable回调函数。
7.onDestroy
当组件或者所在节点调用了destroy函数时,回调函数onDestroy也会被调用,并在当前帧结束时统一回收组件。