Node类:生命周期
Godot Engine 3.2 Alpha
相对于Unity中MonoBehaviour
或Component
,Node
的生命周期要简单很多,本人更认同Godot的设计理念,基类就要足够抽象,不要仅仅为了“看起来简单”,就让它承担太多不必要的工作。
生命周期
类型 | 函数名 | 说明 |
---|---|---|
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
调用完毕后才调用