返回介绍

生命周期1

发布于 2024-01-08 20:55:54 字数 4041 浏览 0 评论 0 收藏 0

节点的生命周期是指节点从出生(创建)到死亡(删除)的过程,这个过程中有几个关键的时间点,我们可以在这些时间点编写我们的逻辑代码,承载这些代码的方法就被称为生命周期方法。

我们之前见过 _ready_process 方法,它俩就是两个最常见的生命周期方法。

[!tip]

生命周期方法不需要我们手动调用,Godot 会在内部自动调用它们。

_enter_tree

这个生命周期方法会在节点进入到场景树时执行,也就是节点出现时执行。

注意不要和下面的 _ready 搞混,在执行 _enter_tree 生命周期方法时可能还没有子节点,因为子节点还没有加入到场景树中。

_ready

当节点完全准备好时执行。

完全准备好是指子节点都执行完毕 _ready_enter_tree 方法,并且当前节点执行完 _enter_tree 方法。

区分 _enter_tree 和 _ready

假设现在有一个这样的场景:

Control
    LineEdit
    TextureRect

其中 Control 节点有两个子节点,分别是 LineEdit 和 TextureRect,并给他们三个都加上相同的脚本:

extends Node

func _enter_tree():
    # name 是指节点的名字
    print (name + " enter tree")

func _ready():
    print (name + " ready")

运行场景后,我们会看到这样的输出结果:

Control enter tree
LineEdit enter tree
TextureRect enter tree
LineEdit ready
TextureRect ready
Control ready

可见 _enter_tree 会最先执行,且父节点优先执行,而 _ready 最后执行,且父节点排在最后。

_exit_tree 节点离开场景树

顾名思义,当节点离开场景树时执行,且子节点优先执行。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文