Node类:生命周期

Godot Engine 3.2 Alpha

相对于Unity中MonoBehaviourComponentNode的生命周期要简单很多,本人更认同Godot的设计理念,基类就要足够抽象,不要仅仅为了“看起来简单”,就让它承担太多不必要的工作。

生命周期

Node类:生命周期

类型 函数名 说明
void _init ( ) virtual 基类Object的初始化方法,相当于构造函数,也是可以重写的
void _enter_tree ( ) virtual 进入场景树,类似于Unity的Awake
void _ready ( ) virtual 当节点准备就绪,相当于Unity的Start
void _physics_process ( float delta ) virtual 物理同步更新,有恒定的调用间隔,相当于Unity的FixedUpdate
void _process ( float delta ) virtual 帧同步更新,调用间隔不稳定,相当于Unity的Update
void _exit_tree ( ) virtual 离开场景树,类似于Unity的OnDestroy

注意

如果一个节点有子节点那么:

  • _enter_tree是通过前序遍历的方式调用的,即其自身的_enter_tree会最先调用,然后调用其子节点的_enter_tree
  • _exit_tree是通过后序遍历的方式调用的,即其子节点的_exit_tree会最先调用,最后调用自身的_exit_tree
  • _ready是通过后序遍历的方式调用的,即其子节点的_ready会最先调用,最后调用自身的_ready,并且_ready的调用是在自身以及所有子节点的_enter_tree调用完毕后才调用