Skip to content

生命周期

游戏的脚本生命周期,简单来说,是指脚本组件从被创建到被销毁的整个过程中,所经历的一系列预设事件。这些事件定义了脚本在不同阶段的行为,帮助创作者管理游戏的逻辑和资源。以下是脚本生命周期的通俗解释:

1. 初始化和准备阶段

  • onStart():当脚本组件实例化上时调用。这通常是进行初始化操作的时机,比如获取其他组件的引用、设置初始状态等。可以看作是脚本的“出生”时刻,此时它开始准备进入游戏世界。

2. 启用阶段

  • onEnable():当脚本组件被启用时调用。这通常用于注册事件监听器、启动计时器等操作。可以理解为脚本“正式上岗”,开始参与游戏世界的交互。

3. 更新阶段

  • onUpdate(dt):每帧(64ms)调用一次,进行帧更新。dt参数表示自上一帧以来经过的时间,可以用来进行时间相关的计算,如实现动画、移动等基于帧的操作。这是游戏逻辑的核心部分,每一帧都在这里得到更新。

4. 禁用和销毁阶段

  • onDisable():当脚本组件被禁用时调用。这通常用于注销事件监听器、暂停动画或计时器等操作。可以理解为脚本“暂时下岗”,不再参与游戏世界的交互。
  • onDestroy():当脚本组件被销毁时调用。这是进行资源清理的最后机会,比如释放内存、注销全局事件监听器等。可以看作是脚本的“死亡”时刻,它正在从游戏世界中退出。

总的来说,脚本生命周期就像是一个脚本组件的“生老病死”过程。通过定义这些生命周期回调函数,创作者可以更加有序地管理游戏的逻辑和资源,确保游戏能够顺畅运行。每个阶段都有其特定的作用和意义,了解并正确应用这些生命周期方法对于开发高质量的游戏至关重要。

以下回调函数实现都是可选的。

onStart

onStart 回调函数会在组件实例化时触发,会在 onUpdate 第一次刷新之前调用。通常我们会在 onStart 阶段去做一些初始化相关的操作。

onUpdate

游戏世界每一帧(30ms)【可能会有幅度变动】触发 onUpdate 回调。

deltaTime:两次更新之间的时间间隔,单位:毫秒

onDestroy

在执行 destroy 方法后,在 onUpdate 最后一次刷新之后调用。会激活 onDestroy 回调并在当帧结束时统一回收组件。

onRestore

重置组件,但组件不会干预重置权重,总时间等预设值。

在执行 restore 方法后,会激活 onRestore 回调。

onEnable

组件脚本初始化阶段:在执行onStart 回调后,且 onUpdate 开始刷新之前调用。

组件脚本启用阶段:onEnable 回调会在该组件的 enabled 属性从 false 变为 true 时,会激活 onEnable 回调。

启用后, onUpdate 开始刷新。

如果更新enabled 属性与之前相同时,将无法 onEnable 回调。

onDisable

组件脚本销毁阶段:在执行onDestroy 回调前,且 onUpdate 最后一次刷新之后调用。

组件脚本禁用阶段:onDisable 回调会在该组件的 enabled 属性从 true 变为 false 时,会激活 onDisable 回调。

禁用后, onUpdate 暂停刷新。

如果更新enabled 属性与之前相同时,将无法 onDisable 回调。