Godot 中的场景树17 Mar 2025 | 4 分钟阅读 引言这方面的知识并不多。这是事情开始变得抽象的时候,但不要惊慌。 在上一篇教程中,所有内容都围绕着节点的概念。视图只是节点的集合。它们在进入视觉树后立即变为活动状态。 这个概念值得更详细地探讨。视觉系统也不是 Godot 的核心组件,因为可以跳过并编写一个脚本(或 C++ 代码),直接与服务器对话,但以这种方式创建游戏会做很多工作。 MainLoop(主循环)这就是 Godot 内部的工作方式。 OS 是一个类,它是从一开始就运行的唯一实例。 稍后,所有驱动程序、服务器、脚本语言、视觉系统等都会被加载。 初始化完成后,必须为 OS 提供主循环才能运行。 到目前为止,所有这些都在内部工作(如果我们要了解其内部工作原理,可以在源代码中检查 main / main.cpp 文件)。 游戏、用户程序或游戏从主循环开始。 这个类中的一些初始化方法是被动的(帧同步回调)、固定的(物理同步回调)和输入。 同样,这是低级别的,而在 Godot 中制作游戏时,我们很少会编写 Menloop。 SceneTree(场景树)解释 Godot 工作方式的一种方法是,它是一个基于低级中间件的高级游戏引擎。 视觉系统是游戏引擎,而 OS 和服务器是低级 API。 在任何一种情况下,视觉系统都会将其主循环提供给 OS,也就是场景树。 场景树在播放场景时自动设置; 不需要额外的操作。 了解这个类的存在至关重要,因为它有一些基本用途
当节点是场景树的一部分时,可以通过调用 Node .get_tree () 获得 syntry 单例。 根视口根视口位于场景的顶部。 形成一个节点,可以通过两种不同的方式获得 此节点包含主视口,无论视口的子节点是什么,默认情况下都会在其中绘制,因此所有节点始终在顶部都有这种类型的节点是有意义的; 否则,将看不到任何内容! 虽然在场景中创建了其他视口(分屏效果等),但这是唯一一个从未由用户创建的视口。 它是在 SceneTree 中自动构建的。 虽然在场景中创建了其他视口(用于分屏效果等),但这是唯一一个从未由用户创建的视口。 它是在 SceneTree 中自动创建的。 Scenetree(场景树)当一个节点间接或直接连接到根视口时,它将成为场景树的一部分。 这意味着,正如之前的教程中所解释的那样,它将获得 _enter_tree() 和 _ready() 回调(以及 _exit_tree())。 ![]() 当节点进入视图树时,它们会变为活动状态。 它们可以访问它们从进程、输入、2D 和 3D 显示、通知、播放声音、组等所需的一切。 当它们从其他场景树中移除时,它们会失去访问权限。 树顺序Godot 中大多数节点操作,例如绘制 2D、处理或获取通知,都是按照树顺序进行的。 这意味着父节点是树顺序中排名较小的同级节点,将在当前节点之前收到通知。 ![]() 通过进入场景树“变为活动状态”
更改当前场景加载场景后,需要将此场景更改为另一个场景。 这样做的一种简单方法是使用 SceneTree.change_scene() 函数 这是一种快速且有用的切换场景的方法,但缺点是游戏将停止,直到加载并播放新场景。 在你的游戏中的某个时刻,可能需要创建一个带有进度条、动画指示器或线程(后台)加载的适当加载屏幕。 这应该使用自动加载(请参阅下一章!)和后台加载自动完成。 下一主题# |
我们请求您订阅我们的新闻通讯以获取最新更新。