> 本系列基于 Godot 4.7 稳定版。本篇目标:装好引擎、认全界面、理解「节点树」这个最核心的直觉,亲手搭出第一个可运行的场景。全程不写一行代码。
一、下载与安装:一个 zip 就是一个引擎
去 godotengine.org/download 下载 Windows 版。你会看到一个选择:Standard 版和 .NET 版。
- Standard 版:内置 GDScript 与 GDExtension 支持,约 50 MB,解压即用。
- .NET 版(旧称 mono):额外支持 C#,需要你机器上装好 .NET SDK(4.x 支持 .NET 8/9;4.5 起还支持 NativeAOT 编译发布)。
另有一条新路径值得知道:4.7 里 GABE(Godot Android Build Environment)已到稳定版,配合安卓编辑器,你甚至可以全程在安卓平板上开发并导出游戏——这在所有游戏引擎里是头一份。
二、项目管理器与编辑器:四个核心区域
新建项目(选兼容性渲染器即可,后文第七级细讲),进入编辑器。界面分成四个区域,对应四种心智:
- 左上 · 场景面板(Scene):你的「世界」由一棵节点树构成。这里是树的目录。
- 中上 · 视口(Viewport):所见即所得的编辑空间,2D/3D 切换在左上角标签。
- 左下 · 文件系统(FileSystem):项目目录的镜像,所有资源(res:// 虚拟路径下)都在这里。
- 下方 · 检查器(Inspector)+ 底部停靠区:Inspector 显示当前选中节点的属性;底部依次是动画、调试器、音频、输出等面板。
一个 4.7 的小甜点:底部面板现在可以拖到编辑器任意边、还能浮动(4.6 引入的统一停靠系统),把动画编辑器拖到右边、输出面板拉到第二屏幕,都是合法操作。
三、亲手搭第一个场景:一个会弹跳的方块
不写代码,纯点鼠标,十分钟内做完:
- 按 F5 会提示选主场景——先不管,我们从建场景开始。点场景面板的「其他节点」,搜
CharacterBody2D,创建。 - 选中它,按
Ctrl+A(添加子节点)依次加三个子节点:CollisionShape2D(在 Inspector 里给它指定一个 RectangleShape2D)、Sprite2D(临时用 Godot 内置图标图标 texture,或随便拖一张图进 FileSystem 再指过去)、以及一个AnimationPlayer。 - 再建一个场景当地面:
StaticBody2D+CollisionShape2D(长条矩形)+ 一个有颜色的ColorRect或Polygon2D当外观。 - 把地面场景实例拖进主场景(直接从 FileSystem 里把 .tscn 文件拖进视口)——这一下就是「场景实例化」,Godot 组合世界的全部秘密。
- 给 CharacterBody2D 挂一个简单的 GDScript(脚本编辑器在顶部「脚本」标签,快捷键 F2):
extends CharacterBody2D
const SPEED := 300.0
const JUMP := -400.0
func _physics_process(delta: float) -> void:
if not is_on_floor():
velocity += get_gravity() * delta
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
velocity.y = JUMP
var direction := Input.get_axis("ui_left", "ui_right")
if direction:
velocity.x = direction * SPEED
else:
velocity.x = move_toward(velocity.x, 0, SPEED)
move_and_slide()
按 F5 运行。一个会左右移动、会跳、落在地面上的方块诞生了。
这里先不求全懂,只标记三个「锚点」,后文会逐一展开:
velocity不是你自己声明的变量,move_and_slide()也不是你写的函数——它们是CharacterBody2D基类自带的,引擎替你处理了碰撞滑动。_physics_process(delta)是引擎每物理帧回调的函数,delta是帧间隔秒数,一切与时间相关的运动都要乘它。get_gravity()是 4.3 加入的便捷方法,自动读项目重力设置——不再需要手写Vector2(0, 980)。
四、最该先养成的四个习惯
- 重命名一切。新建节点的默认名(
CharacterBody2D、Sprite2D)是万恶之源,改成Player、IdleSprite。命名即文档。 - 用
%唯一名称。在场景面板右键节点勾选「作为场景唯一名称访问」,之后任何脚本里$%Player都能直达,改层级结构也不会断引用。这是 4.x 对旧版$A/B/C长路径的正解。 - 先建输入映射再写输入。项目设置 → 输入映射,把
ui_accept换成你自己定义的jump(绑定空格 + 手柄 A 键),代码里就永远写Input.is_action_just_pressed("jump"),键位变更零成本。 - 一开场就开 Git。Godot 项目是纯文本(.tscn / .gd / .tres),天生适合版本控制。官方文档有专门的「与 Git 共舞」章节,把
.godot/目录加进 .gitignore 即可。
五、常见第一晚事故清单
- 运行后窗口一闪而过:没设主场景。第一次按 F5 会弹窗让你指定,选当前场景即可。
- 方块穿地而过:多半是
CollisionShape2D忘了指定 shape,或地面忘了用StaticBody2D——ColorRect只是外观,外观节点不参与物理,这是新人第一课。 - 画面黑漆漆(3D 项目):3D 需要光源或环境光,
WorldEnvironment+ 一盏DirectionalLight3D是标准开局三件套的其中两件。 - 中文界面:编辑器 → 设置 → 常规 → 界面 → 编辑器语言,官方中文翻译完整可用。
*本篇配图:编辑器四象限与场景树生长。*