什么是生命周期,游戏引擎的设计者,为了让程序员从繁琐的底层细节中解放,更好地专注于游戏逻辑。把游戏对象从创建到销毁整个过程中的一些 “关键时刻” 都 “提取” 出来,然后游戏程序员只需要找到自己 “需要的时刻” 把相应的游戏逻辑添加进去即可。
Node类是所有可以“放到”场景树上的节点的继承体系的起点。所以Node的生命周期是最重要也是最常用的
生命周期
类型 | 函数名 | 说明 | 和Unity对应的方法 |
---|---|---|---|
void | _init ( ) | 基类Object的初始化方法,“相当”于构造函数,也是可以重写的 | 无 |
void | _enter_tree ( ) | 进入场景树 | Awake |
void | _ready ( ) | 当节点准备就绪 | Start |
void | _physics_process ( float delta ) | 物理同步更新 | FixedUpdate |
void | _process ( float delta ) | 帧同步更新 | Update |
void | _exit_tree ( ) | 离开场景树 | OnDestroy |
注意
如果一个节点有子节点那么:
_enter_tree是通过前序遍历的方式调用的,即其自身的_enter_tree会最先调用,然后调用其子节点的_enter_tree
_exit_tree是通过后序遍历的方式调用的,即其子节点的_exit_tree会最先调用,最后调用自身的_exit_tree
_ready是通过后序遍历的方式调用的,即其子节点的_ready会最先调用,最后调用自身的
_ready,并且_ready的调用是在自身以及所有子节点的_enter_tree调用完毕后才调用