- Godot 中最基本的构建块,一切皆节点。
- 每个节点具有属性、方法,并能接收回调(如
_ready()、_process())。
- 节点可以添加子节点,形成树状结构(场景树)。
- 由一组节点构成的、可保存为
.tscn 文件的组合。
- 场景可被实例化(复制)到其他场景中,实现复用。
- 一个游戏通常由多个场景组成(如玩家、敌人、UI、关卡)。
- 游戏运行时所有节点的层次结构。
- 根节点通常是
Window(或 Main 场景),所有活动节点都挂在它下面。
- 场景树管理节点的生命周期、处理顺序和分组。
- Godot 内置的事件系统,用于节点间解耦通信。
- 节点可以发出信号(如“按钮被按下”),其他节点可以连接该信号并执行回调。
- 通过
signal_name.connect(callable) 连接,避免直接引用节点。
- 数据容器,如纹理、音频、脚本、动画、字体、自定义数据等。
- 资源可被多个节点共享,节省内存,并支持导入/导出。
- 常见资源类型:
Texture、AudioStream、Script、Animation、PackedScene。
- 附加到节点上的代码,定义节点行为。
- Godot 支持 GDScript(官方语言)、C#、C++(通过 GDExtension)、VisualScript 等。
- 脚本继承自节点类型,可覆盖虚函数(如
_process())并添加自定义逻辑。
- 提供 2D/3D 物理模拟,包括刚体(RigidBody)、静态体(StaticBody)、角色体(CharacterBody)、碰撞形状等。
- 通过
PhysicsServer 或节点(如 Area2D、RigidBody2D)使用。
- 使用
AnimationPlayer 节点和 Animation 资源制作关键帧动画。
- 可动画化节点属性(位置、旋转、颜色等),并支持混合、过渡、调用方法等。
- 通过
Input 单例或节点中的 _input(event) 回调处理用户输入。
- 支持“输入映射”(Input Map),可定义动作(如“跳跃”)并绑定按键/手柄。
- 基于
Control 节点及其子类(如 Button、Label、Panel、Container)构建。
- 使用锚点(anchors)和容器(containers)实现响应式布局。
- UI 场景通常单独设计,并与游戏逻辑分离。
- 在项目设置中注册的场景或脚本,自动成为全局单例。
- 适合存放全局数据、游戏管理器、音频管理器等。
- 给节点添加标签(如“enemy”、“collectible”),便于批量获取或调用方法。
- 使用
add_to_group() 和 get_tree().get_nodes_in_group() 操作。
- 用 Godot 着色器语言(类似 GLSL)编写自定义渲染效果。
- 可应用于材质(Material)或后处理,实现复杂视觉效果。
- 实例化:将一个场景作为子节点添加到另一个场景,形成组合。
- 继承:一个场景可以继承另一个场景,并覆盖或扩展其节点属性,类似面向对象的继承。