中EN
概念页

节点与场景

Nodes & Scenes

更新于 2026-10-16 约 2 分钟Godot节点场景SceneTree组合

Godot 把游戏抽象成「场景树」:节点是最小积木,场景是可复用的节点树蓝图;场景可嵌套实例化,同时扮演其他引擎中 Prefab 与关卡的角色。

原理

  • 节点 (Node):有名字、可编辑属性、可接收每帧回调、可挂脚本扩展、可作父子。组合不同节点(如 CharacterBody2D + Sprite2D + Camera2D + CollisionShape2D)得到复杂行为。
  • 场景 (Scene):以单一根节点组织的节点树,保存为 .tscn(文本 PackedScene)。在编辑器里实例化后常显示为一个折叠节点。
  • 场景树 (SceneTree):运行时整棵活跃树;引擎只需指定一个主场景作为入口。
  • 2D/3D 节点命名对称(*2D / *3D);Godot 4 起原 Spatial 改称 Node3D。
flowchart TD
  ST["SceneTree(运行时)"] --> Main["主场景根"]
  Main --> Player["Player 场景实例"]
  Main --> Level["关卡内容"]
  Player --> Body["CharacterBody2D"]
  Body --> Sprite["Sprite2D"]
  Body --> Cam["Camera2D"]
  Body --> Col["CollisionShape2D"]

应用

  • 角色、武器、UI 面板、整关都做成场景;用拖放嵌套组装。
  • 编辑器本质是场景编辑器:2D / 3D / UI 共用同一套「树 + 属性」心智。

取舍

  • 组合优于巨型继承:行为差用子节点/组件场景表达,而不是深继承链。
  • 节点虽「便宜」,但并非免费——见最佳实践页:数据多用 Resource / RefCounted,别为每条表格行都建 Node。
  • UE 对照:场景 ≈ Actor 蓝图 + 关卡片段;节点树 ≈ 组件层级,但 Godot 没有独立的「关卡 vs Prefab」双套资产模型。

参见

  1. Godot 官方文档(离线 HTML,stable) Godot 4.7/stable
  2. Godot 官方文档(离线 HTML,stable) Godot 4.7/stable
  3. docs.godotengine.org/en/stable/getting_started/step_by_step/nodes_and_scenes.html
  4. docs.godotengine.org/en/stable/getting_started/introduction/key_concepts_overview.html

相关页面

游戏开发 · Godot信号与节点通信Signals信号是 Godot 内建的委托/观察者机制:节点在特定事件发生时发出消息,其他节点连接后回调,无需互相硬引用,从而降低耦合。游戏开发 · Godot资源与场景实例化Resources & InstancingResource 是纯数据容器(纹理、网格、脚本、动画、音频等);节点消费 Resource。场景实例化是把 PackedScene 当作蓝图复制出运行时节点树——勿与 GPU MultiMesh 硬件实例化混淆。游戏开发 · GodotGodot 最佳实践与场景组织Godot Best Practices官方最佳实践系列从真实问题出发,强调 OOP 原则在节点/场景上的落地:场景声明组合、脚本声明行为;Autoload 慎用;别把一切都做成 Node。游戏开发组件模式Component Pattern组件模式 (Component Pattern) 让一个实体横跨多个领域(输入、物理、图形、AI……),同时不让这些领域彼此耦合:每个领域的代码放进自己的组件类,实体本身退化为组件的容器。它是现代引擎实体模型的基础,代价是对象变成需要正确装配的一组对象,组件之间如何通信也成了要做的设计决策。游戏开发运行时对象模型架构Runtime Object Model Architectures玩法基础系统 (gameplay foundation system) 是位于"引擎与游戏分界线"附近、供构建游戏规则和动态元素的一组运行时组件,其中最复杂的是运行时对象模型:它在运行时实现世界编辑器展示给策划的抽象对象模型。GEA 把架构分为两大类:以对象为中心(每个工具侧对象对应一个或一小组类实例)和以属性为中心(对象只是一个 id,属性分散在按属性类型划分、以 id 为键的表里)。前者从单体类层次走向组合与组件,后者更省内存、更缓存友好、更易数据驱动,但难以表达属性间关系、也更难调试(GEA4 卷 II 17.1–17.2)。游戏开发游戏世界与游戏对象Game World & Game Objects游戏由玩法 (gameplay) 而不是技术定义;游戏机制 (game mechanics) 是支配游戏中各实体交互的规则,以及目标、成败标准、玩家能力、非玩家实体和整体流程(GEA 引用的论文称实现玩法的软件系统为游戏的 G 因子)。大多数游戏世界由静态元素和动态元素组成,划分为若干世界块,并由高层游戏流程组织玩家目标;动态元素通常实现为游戏对象 (GO),引擎提供的建模设施称为游戏对象模型,且分为工具侧和运行时两套(GEA4 卷 II 16、16.1–16.2)。游戏开发 · UE5Gameplay 框架Gameplay FrameworkGameplay 框架 (Gameplay Framework) 是 UE 提供的一组相互配合的类,用来搭建游戏的基本结构:Actor 与组件 (Component) 构成场景中的一切;GameMode 在服务器上定规则并生成玩家;玩家由“控制器 (Controller) + 棋子 (Pawn)”组成;GameState 与 PlayerState 负责把全局与每个玩家的状态复制给所有客户端;GameInstance 跨关卡存活。

被这些页面引用5 篇

输入关键词开始搜索

滚轮或双指缩放 · 拖动平移 · 双击放大 / 还原