第三章:Godot游戏引擎快速入门
本章导言
你已经了解了游戏的基本概念与开发流程,也初步认识了Godot引擎的优势。那么,现在是时候真正开始“做游戏”了!
在本章中,我们将带你从零开始使用Godot引擎。你将学会如何下载和配置Godot,引导你创建第一个项目,熟悉编辑器的界面结构,并通过动手操作,理解场景与节点的基本概念。我们还会制作一个简单的动画,让你真正体验到“从空白到动作”的成就感。
这里不会涉及复杂的编程语法,也不会深入讲解游戏逻辑机制,而是帮助你建立一个“敢用、不怕错”的信心,让Godot成为你手中可以掌控的开发工具。当你完成这一章,你将能够:
- 正确安装并启动Godot引擎;
- 创建属于你的第一个游戏项目;
- 熟悉编辑器各个功能区域的作用;
- 使用节点构建场景,并为角色添加基础动画;
- 理解资源系统的基本用法,完成初步的项目组织;
- 运行你的第一个可视化场景,看到游戏开始“动”起来!
准备好了吗?让我们从打开Godot的那一刻开始,踏上自己的游戏创作之路!
1. Godot引擎的安装和配置
Godot 是一款自由、开源的跨平台游戏引擎,它无需安装、不需要注册账户、完全免费使用。相比其他动辄数GB的大型游戏引擎,Godot 的本体大小不到百兆,但功能却非常强大,支持制作各种类型的 2D 和 3D 游戏。这种“轻量而强大”的特性,是许多独立开发者和教育项目选择 Godot 的原因。
1.1 下载Godot引擎
Godot 引擎的官方下载非常简单,以下是标准步骤:
- 打开浏览器,进入Godot引擎的官网(https://godotengine.org/)
- 在首页顶部菜单中,点击 Download。
- 页面会自动推荐与你操作系统匹配的版本(Windows、macOS、Linux)
- 在下载列表中找到你需要的版本:
- 对于 Windows 用户,请选择带有 win64 字样的文件,例如:Godot_v4.3-stable_win64.zip
- 对于 macOS 用户,请选择 macos.universal.zip,支持Intel和M系列芯片。
- 对于 Linux 用户,可选择对应的 x11 版本
- 有时在点击下载时,会跳转到一个“捐赠”页面,这是项目的众筹支持界面。你可以自由选择捐赠,也可以直接点击跳过,文件会自动开始下载。
图示是下载 Godot 4.3 版本的示例。你只需要下载最新版本即可。
1.2 解压与启动
Godot 是“绿色应用”,不需要像传统软件那样安装,下载后只需解压即可使用:
- 找到下载好的zip 压缩包,右键选择“解压到当前文件夹”或使用你喜欢的解压软件处理。
- 解压完成后,会看到一个主程序文件。Windows 用户对应的是,Godot_v4.3-stable_win64.exe。macOS 用户对应的是,Godot.app
- 双击该文件即可启动 Godot 编辑器。
- 为了方便日常使用,你可以将该程序拖动到桌面创建快捷方式,或者固定到任务栏或启动菜单中。
注意不要双击压缩包内的程序运行,务必先解压再使用,否则项目管理器无法正常读取资源。
1.3 第一次启动设置
当你第一次启动 Godot 时,可能会遇到以下情况:
- 语言界面:Godot 支持中文、英文等多语言界面。默认根据系统语言设置。如果你想切换语言:点击右上角的 Settings -> Language,选择你熟悉的语言。
- 分辨率缩放:如果你的屏幕是高分辨率(如2K、4K),可以在 Settings 中调整 Display Scale 比例,让界面更舒适。
- 推荐设置:Language可以保持英文,因为大部分官方API 文档均为英文,保持英文有助于学习与交流。如果完全看不懂英文,可以先切到中文熟悉界面位置,再切回英文学习,这样能降低挫败感。Display Scale设置为175%或200%,Theme可以设置为Gray这类深色主题。
上图是设置界面示例。因为Light主题比较适合截图说明,你可以设置为自己喜欢的主题。
2. 如何创建一个项目
成功启动 Godot 引擎之后,首先会看到的是“项目管理器”(Project Manager) 界面。这里是你管理所有 Godot 项目的地方。刚开始,这个列表可能还是空白的,但很快,你就会在这里看到你亲手制作的一个个游戏。

2.1 创建新项目的过程
在项目管理器界面的左上角,你会看到一个 “Create”按钮。点击它,弹出创建新项目的窗口。另外说明一下,Create按键右侧的Import是用于导入一个已有的项目,或者用Scan来扫描目录以导入多个项目。当你需要从网上下载他人的Godot项目或下载本书配套代码时,需要用到这个功能。

在创建窗口中,你需要填写以下几项内容:
-
Project Name(项目名称) 输入一个名称,例如
Demo。这个名称会显示在项目管理器中,并用作默认文件夹名。 -
Project Path(项目路径) 选择项目保存的位置。建议你专门为 Godot 项目创建一个文件夹,比如
D:/GodotProjects/。勾选 “Create Folder”,Godot 会在你选定的路径下自动创建一个以项目名称命名的子文件夹,保持项目整洁。Godot 在部分操作系统下可能无法正确读取含有中文、空格或特殊符号的目录,建议使用清晰的英文作为目录名和文件名。每个 Godot 项目都应存放在独立文件夹内,不应嵌套多个项目。项目文件夹必须为空,Godot 不允许在非空文件夹中创建新项目。 -
Renderer(渲染器) Godot 提供三种图形渲染模式,你可以根据需要来选择,也可随时切换到其它的模式。大多数情况请选择默认的 Forward+ 即可:
模式 说明 适用场景 Forward+ 默认高质量渲染,支持大部分PC 开发桌面游戏 Mobile 优化移动端性能 开发手机游戏 Compatibility 与旧设备兼容性更强 低端机或网页游戏 -
Version Control Metadata(版本控制设置) 如果你是初学者,或没有使用 Git 的经验,可以选择 None。
所有信息确认无误后,点击窗口底部的 “Create & Edit” 按钮。Godot 会为你创建项目目录结构,并自动进入编辑器界面。
2.2 项目创建会发生什么?
当你完成上述步骤后,Godot 会在你指定的文件夹中创建一个完整的项目目录,结构大致如下:
其中的 project.godot 是 Godot 项目的核心配置文件,类似于“项目说明书”。只要这个文件存在,Godot 就能识别出它是一个有效的项目。你可以从操作系统的文件管理器中打开刚刚创建好的Demo文件夹,看看里面有什么。
在接下来的小节中,我们将进入编辑器,开始动手搭建第一个真实的游戏场景。
3. 编辑器界面
成功创建项目后,Godot 会自动打开项目并进入主编辑器界面。这是你构建游戏世界的“指挥中心”。虽然第一次看到它可能会有些复杂,但别担心,我们将一块一块地认识这个界面。
Godot 编辑器可以划分为四个主要区域,它们分工明确,各司其职:

| 区域位置 | 面板名称 | 功能 |
|---|---|---|
| 顶部 | 工具栏 | 运行、保存、设置、菜单 |
| 中央 | 主工作区 | 编辑场景或脚本 |
| 左侧 | Scene / FileSystem | 管理节点结构和项目资源 |
| 右侧 | Inspector | 编辑节点属性 |
| 底部 | Output / Debug 等 | 显示输出与调试信息 |
3.1 顶部工具栏(全局控制区)
位于窗口最上方,包含项目管理与运行相关的功能:
Scene、Project、Debug 等菜单栏,负责管理场景、设置项目参数、调试运行。具体的功能如下:
| 菜单项 | 功能简述 |
|---|---|
| Scene | 场景的创建、保存、关闭 |
| Project | 项目的设置、导出配置 |
| Debug | 启动调试器、查看性能信息 |
| Editor | 编辑器本身的配置 |
| Help | 文档、官方教程、快捷键列表 |
在右上角区域,你会看到负责游戏调试和运行的工具按钮。
| 图标 | 按钮名称 | 功能说明 | |
|---|---|---|---|
| ▶️ | Run Project | 运行主场景(项目设置中定义的启动场景) | |
| 🎬 | Run Current Scene | 只运行当前打开的场景,适合测试子场景 | |
| ⏸️ | Pause Scene | 暂停正在运行的场景(编辑器中运行时可用) | |
| 🎥 | Movie Maker | 打开动画输出器,可录制场景为视频序列 |
3.2 中央主窗口(工作区域)
这是你游戏世界的“舞台”,可以切换不同的工作视图:
- 2D:用于编辑 2D 场景(本书重点使用)
- 3D:用于编辑 3D 场景
- Script:打开并编写 GDScript 脚本
- AssetLib:连接 Godot 资源商店,可浏览和导入开源插件
默认情况下,Godot 可能会开启 3D 视图。由于本书专注于 2D 游戏开发,请点击编辑器正上方中央的 “2D” 按钮。你会发现网格变成了平面,左侧的标尺也变成了像素单位。
在最新版本的Godot中,增加了Game窗口,运行的游戏可以显示在这个窗口中。
3.3 左侧面板(场景与文件管理)
左侧区域通常分为上下两块面板。
上方名为Scene面板。展示当前场景的“节点树结构”。每个游戏元素都是一个节点(Node),节点之间有父子关系,组成完整的场景树。你可以在这里添加、选择、重命名、删除节点。当前还没有节点时,会显示“Create Root Node”,提示你添加根节点。我们很快会在后面详细介绍什么是场景和节点。
下方名为FileSystem面板:显示项目中的所有资源文件(如图片、场景、脚本、音频等),类似于项目的“资源文件夹”。你可以直接拖拽文件到场景或属性中使用。FileSystem 面板下方默认会有一个 icon.svg 文件,它是项目自动创建时附带的图片,我们将在后续用它制作动画。
3.4 右侧面板(属性编辑区)
右侧区域为 Inspector(检查器) 面板,作用是显示当前选中节点的所有属性,而且允许你在此修改数值、添加资源、绑定信号。比如,当你选中一个精灵节点(Sprite2D),右侧会显示它的位置(Position)、图片(Texture)、旋转角度(Rotation)等属性。你可以直接点击数值进行编辑,也可以拖动滑块,或用鼠标中键进行快速微调。
3.5 底部面板(输出与调试区)
窗口底部包含多个选项卡,虽然初期我们用得不多,但它们在开发中非常重要:
- Output:打印输出信息,如
print()调试信息 - Debugger:程序运行时出现报错或断点调试
- Animation、Audio 等面板:用于制作动画、管理音频资源
Godot 的编辑器初看起来功能繁多,其实它的布局非常清晰:左侧是结构,右侧是属性,中间是舞台,底部是调试台。你不需要一次记住所有功能,只要先掌握添加节点、修改属性、运行场景这几个关键步骤,就已经可以开始制作简单的游戏了。
接下来,我们将动手构建一个真实的场景,正式了解节点(Node)和场景(Scene)这两个 Godot 的核心概念。
4. 理解节点和场景
Godot 的一切知识都基于节点(Node)和场景(Scene)。这两个概念是 Godot 引擎的核心构建方式。如果你能理解并熟练使用它们,就已经掌握了游戏制作中最关键的一部分。现在,让我们从“舞台与演员”的比喻开始,逐步揭开它们的面纱。
在Godot中,场景称之为Scene,节点称之为Node。节点是最基本的游戏制作单位,场景是由多个节点组成的。你可以把场景理解为一个舞台,节点则是舞台上表演的演员。舞台上可能只有一个演员,也可以有很多个演员。不同的演员有不同的能力,比如一个演员可以跳舞,另一个演员可以唱歌,所以Node有很多的种类和功能,而且节点可以通过编写代码来扩展其功能。我们会在后续讲解各种有趣的节点。
Godot 中的节点大致分为三类:
- 2D 节点(蓝色):用于开发 2D 游戏,如 Node2D、Sprite2D、Area2D 等。
- 3D 节点(红色):用于开发 3D 游戏,如 Node3D、MeshInstance3D 等。
- UI 节点(绿色):用于构建用户界面,如 Button、Label、Control 等。
一个节点单独使用功能有限,需要与其他节点组合在一起,构建出完整的功能模块。就像演员必须组成剧团,才能演出精彩节目一样,节点通过树状结构组合成场景。
为了帮助理解,我们可以用“大雁飞行”的比喻来形象说明:每只大雁是一名演员(Node),这群大雁有一只头雁(根节点),其他大雁作为它的子节点有序排列。这个组合整体就是一个场景(Scene),它们的结构就像一棵树。节点之间通过父子关系组织,就像一群协同飞行的大雁一样。
在 Godot 的场景中,场景是通过一棵节点树来组织的。每一个场景都有一个根节点,其他节点都作为它的子节点存在。下面我们通过动手实践来深入理解这一结构。
在我们之前刚创建的 Demo 项目中,目前只有一个空白场景。按如下步骤操作:
- 点击 Create Root Node 下方的 2D Scene 按钮。
- 这样Node2D 就会作为根节点出现在场景树中。
- 选中 Node2D,点击上方的“加号 +”按钮,添加子节点。
- 搜索 Sprite2D 并点击 Create。

此时,场景树中包含两个节点:Node2D(根节点) 和 Sprite2D(其子节点)。你可以尝试点击不同的节点,在右侧的 Inspector 面板中查看它们的属性。
Node2D 主要用于表示二维空间位置,它的属性主要是 Transform,也就是负责空间变换,例如坐标、旋转和缩放;Sprite2D 则是精灵节点,可以用于显示图像,它有一个 Texture 属性,用于存放纹理,目前还是空的。
我们可以从左下角的 FileSystem 面板中将 icon.svg 拖入 Sprite2D 的 Texture 属性,这样在主窗口中就可以看到这个图片显示出来了。

接下来,右键点击 Node2D,选择 Rename,或使用快捷键 F2,将其重命名为 Player。
点击菜单栏中的 Save Scene,或使用快捷键 Ctrl + S 保存场景,命名为 player.tscn,这样场景被保存成一个文件,你会在 FileSystem 面板中看到这个场景文件。

现在我们可以观察场景视图中出现的一条红线和一条绿线,它们的交点就是二维坐标系中的原点 (0,0)。
选中 Sprite2D,修改其 Transform 属性,将 Position 改为 (100, 100),你会发现图像被移动到了原点右下方。这说明 Godot 的 2D 坐标系是,X 轴正方向向右,而Y 轴正方向向下。
Transform 属性中还包含 Rotation(旋转)、Scale(缩放)等,你可以自由尝试修改这些属性。

如果你选中场景树中的 Player 节点,并将其 Position 改为 (500, 200),你会发现整个 Player 节点连同它的子节点 Sprite2D 一起移动了。这说明:子节点的位置是相对于父节点的位置而言的,而不是相对于整个画布。
现在场景中只是一个静态图像,下面我们让它动起来,操作步骤如下:
- 将 Player 节点的位置恢复为 (0, 0)。
- 给 Player 添加一个子节点:AnimationPlayer。
- 选中 AnimationPlayer,底部会出现动画编辑器区域。
- 在动画区域中点击 Animation菜单,选择 New 来新建动画,输入动画名称为 rotate。

- 回到 Sprite2D,找到 Rotation Degrees 属性,点击右侧的钥匙图标,在弹出的对话框中选择Create,创建一个新的动画轨道。动画轨道默认在第0秒有一个关键帧。
- 在动画编辑区域中移动时间轴指针到第1秒,在右侧的属性面板中修改旋转角度为 360,插入一个新关键帧。

- 用同样方法为 Player 节点添加旋转动画。
- 设置动画为自动播放(AutoPlay)和循环播放(Loop)。

点击右上角运行按钮旁的 Run Current Scene,运行当前场景。你会看到图标旋转起来了!它围绕着父节点旋转,同时自身也在旋转。
通过这个例子,我们理解了节点与场景的重要关系。节点是最小的游戏元素,场景是节点的集合,子节点会继承父节点的空间变换属性。
上例中,我们使用了Node2D、Sprite2D和 AnimationPlayer这三种节点构建了一个场景,Node2D是根节点,起到管理收纳子节点的作用,Sprite2D负责图像显示,AnimationPlayer负责动画处理逻辑。有些节点(如 Sprite2D)会在主窗口中可视化显示,有些节点(如 AnimationPlayer)不显示出来,但在场景树中可以看到并发挥作用。
Godot中还有很多不同类型的节点,将这些节点组织起来成为一个场景树,就是为了让这些有不同能力的演员在一个共同的舞台上表演,从而形成一个完整的表演节目。场景可以保存成文件,可以在文件系统中加载,还可以运行。
接下来,我们来探索场景的“复用”能力。
- 点击Player场景右侧的加号,创建一个新场景,根节点仍选择 Node2D,命名为 Level。
- 保存为 level.tscn。
- 在 Level 的场景树中,点击加号旁边的“锁链”图标(Instance Child Scene),选择之前保存的场景文件 player.tscn。
你会看到level场景中嵌套了player场景,就像是多了一个子节点。这样的操作再来一次,那么level场景树中就会包括一个根节点,和两个Player子节点。将两个子节点移动到窗口中间位置,将它们位置分开一些。运行当前场景,你会看到两个图标在同时旋转。

上述的操作称为场景的实例化。player.tscn文件是保存为文件的场景,也称之为打包的场景(Packed Scene)。它可以在其他场景中以“副本”方式被嵌套使用。你可以把 Packed Scene 理解为“模板”或“蓝图”,就像女娲先设计好一个人类模型,再批量创造出很多人一样。如果你熟悉面向对象编程,这就好像是类(class)和对象(object)的关系。
在实际的游戏开发中,我们可以围绕着场景和节点来设计和拆解游戏元素。关卡是一个最大的场景,但我们不会把所有游戏单位作为节点放在关卡场景中,这样场景变得很复杂。可以将关卡中的某些单位,例如敌人,设计成一个场景。就像例子中的player场景一样,敌人场景可以使用不同功能的节点来构建。然后在关卡中将敌人场景实例化,创建多个敌人副本。这些容易维护,也方便扩展。
所以,从上述例子中,可以理解到Godot引擎来开发游戏的思路,就是分而治之。将我们设计的游戏元素按一定逻辑进行分拆,分拆成可以重复利用的中间组件,用基本的节点来构建出这些组件,也就是构建场景。这种构建游戏项目的方式非常的自然和高效。
5 本章使用的节点
在上一节中,我们搭建了一个包含图像和动画的简单场景,用到了三个非常关键的节点:Node2D、Sprite2D 和 AnimationPlayer。这三个节点是我们开发 2D 游戏时最常接触的“基础模块”,它们之间既各司其职,又密切配合,构成了 Godot 游戏对象的基本结构。
我们可以将它们与第二章介绍的几个基础概念一一对应起来:
| 基础概念 | 对应节点 | 节点在 OOP 中的角色 | 功能说明 |
|---|---|---|---|
| 屏幕坐标系与位置 | Node2D | Node2D 是一个类(Class) |
表示空间位置、旋转与缩放 |
| 图像显示与精灵 | Sprite2D | 继承自 Node2D 的子类 |
显示图像资源,具备坐标功能 |
| 动画插值系统 | AnimationPlayer | 继承自 Node 的动画控制类 |
控制其他节点属性随时间变化 |
| 面向对象思想 | 所有节点都是类 | 每个节点类型都是一个可实例化的类 | 支持继承、复用、封装,实现模块化构建 |
在 Godot 中,每种节点(如 Node2D、Sprite2D、AnimationPlayer)背后都有一个对应的类(Class)。类就像是“蓝图”或“模板”,描述了该节点应具有什么样的功能和属性。你可以把 Sprite2D 理解为“精灵节点”的类,它规定了精灵可以显示图像、具有位置、可以被动画控制等功能。而当你在编辑器中点击“+”添加一个 Sprite2D 节点时,Godot 实际上是在“根据这个类,创建了一个节点实例(Instance)”,就像是根据模板造出了一个具体的“精灵对象”。
Godot中所有的节点也都遵循继承体系。在面向对象编程(OOP)中,继承(Inheritance)是一种非常重要的思想:一个“子类”可以继承“父类”的功能,并在此基础上扩展新的能力。就像“鸟类”可以继承“动物”的属性(会移动、有生命),并增加自己的特性(会飞)。
在上述三种节点中,Sprite2D 继承自 Node2D,所以它也拥有 position、rotation 等位置属性。而Node2D 又继承自 Node,所以它也可以添加子节点、参与场景树结构。Node 继承自 Object,这是 Godot 所有对象的最终基础类。在后续章节中,我们会更深入的介绍“继承”这个概念。
在 Godot 编辑器的类文档(快捷键:Shift + F1)中,你可以查看任意节点的继承链和支持的功能,是学习和查阅的重要工具。
5.1 Node2D:一切 2D 节点的基石
Node2D 是所有 2D 节点的父类,代表了一个二维空间中的位置单位。它自身不具备显示功能,但提供了空间变换的属性:
- position:二维位置
- rotation:角度(以度数为单位)
- scale:缩放比例
在编辑器的 Inspector 面板中,当你选中 Node2D 节点时,就会看到这些属性都集中在 Transform 分类下。Node2D 既可以作为场景的根节点,也可以作为一个中间“容器”,来管理多个子节点的位置和旋转。
在第二章中我们提到过,游戏中每个对象都有自己的坐标、朝向和尺寸,而这些都可以通过 Node2D 的 transform 属性来实现。
5.2 Sprite2D:带有图像的可视节点
Sprite2D 是 Node2D 的子类,继承了所有的空间属性(position、rotation、scale),并新增了用于图像显示的功能。你可以通过它的 Texture 属性加载 .png、.svg 等图像文件,在 2D 场景中显示出来。
在 编辑器中,选中 Sprite2D 节点后,你可以在右侧 Inspector 面板中看到:
- Texture(贴图)属性:用来设置图像
- Offset、Region 等细节设置
- 同样也包含了 Transform 属性,因为它继承自 Node2D
此外,Sprite2D 也支持响应动画、碰撞检测、图层排序等,是最常用于构建角色、背景、UI 元素的核心节点。
5.3 AnimationPlayer:时间轴上的属性控制器
AnimationPlayer 并不属于 2D 节点系列,而是直接继承自 Node。它本身不具备位置、显示等功能,但它可以控制其他节点属性在时间轴上的变化。在编辑器中添加 AnimationPlayer 后,它不会出现在主舞台画面中,但在 场景树中你能看到它,点击后可以在底部打开动画编辑器面板。
你可以使用 AnimationPlayer 控制很多东西。包括精灵的旋转、位移、缩放,UI 元素的出现和隐藏,声音播放、属性切换、颜色淡入淡出等等。
正如第二章中提到的“插值动画”,你只需在动画编辑器中插入两帧关键帧,Godot 就会自动计算中间帧,形成平滑的动画过渡。通常,我们会将 AnimationPlayer 放在需要播放动画的节点下方作为子节点,这样可以方便在动画中引用其兄弟节点的属性。
我们在上一节构建的场景结构,可以用下面的树状图表示:
这个结构说明:
- Player 节点掌管位置与旋转
- Sprite2D 负责画面呈现
- AnimationPlayer 是“导演”,在时间轴上安排动作
在场景树面板中,你可以清晰地看到这种父子结构,并且通过展开/收起来控制编辑时的视觉层级。
通过掌握这三种基础节点的使用方式和继承关系,你已经为构建更多功能更复杂的游戏对象打下了坚实基础。后续我们还会接触其它更丰富的节点类型,但不论如何变化,它们都遵循相同的继承结构与编辑器组织方式。
6 认识资源系统
在 Godot 中制作游戏,离不开各种各样的素材:图像、音效、字体、脚本、场景等等,这些统称为资源(Resource)。资源的管理和使用,是使用 Godot 编辑器的基础能力之一。如果把一个游戏比作一座舞台剧,那么资源就是这场剧的道具、服装、台词和音效。Godot 提供了一套直观高效的资源系统,帮助你整理这些“道具”,并灵活地在项目中调用它们。
6.1 文件系统与路径
在 Godot 项目中,所有的资源文件都保存在项目目录下,围绕 project.godot 文件展开。Godot 会将 project.godot 所在位置视为项目的根目录,资源路径也都是基于这个目录计算的。
Godot 使用两种特殊路径前缀来管理资源引用:
| 路径前缀 | 含义说明 | 用途举例 |
|---|---|---|
res:// |
项目资源路径(resource path) | res://assets/icon.svg |
user:// |
用户数据路径(runtime user data) | 用于保存游戏进度、配置等动态文件 |
Godot 编辑器中的 FileSystem 面板就是真实映射的资源目录,任何放入该目录的图片、音频、脚本等,都会被自动识别为资源。需要注意的是,项目中的所有资源路径必须在 res:// 范围内,否则 Godot 无法识别;user:// 路径只在游戏运行时使用,用于存档文件、设置数据等动态内容。
6.2 Godot 支持的常见资源类型
| 类型 | 资源后缀 | 用途 |
|---|---|---|
| 图片 | .png, .svg, .webp |
精灵、UI、背景等视觉元素 |
| 音频 | .wav, .ogg, .mp3 |
音效、背景音乐 |
| 场景 | .tscn |
可运行的场景单位 |
| 脚本 | .gd |
控制逻辑(GDScript) |
| 字体 | .ttf, .otf, .font |
文本显示样式 |
| 动画 | .anim, .tres |
动画资源或内置资源引用 |
Inspector 面板中,如果某个属性需要设置图像或声音,只需拖拽资源文件到属性栏,或点击小文件图标,选择“Load”加载资源。
在我们当前的 Demo 项目中,就使用到了几种基础资源。一种是图像资源,例如icon.svg图片,我们将它拖拽到 Sprite2D 的 Texture 属性中,实现了角色图标的显示。另一种是场景资源,player.tscn资源就是我们保存的角色场景;而level.tscn资源则是组合多个角色的关卡场景。
6.3 资源的内部结构与复用机制
Godot 中的资源不仅仅是“文件”,它们本质上是一种可以被编辑器识别、引用、共享的对象数据。所有资源(图片、场景、脚本等)都遵循一个统一的资源系统,它们都继承自内部的 Resource 类,可以像对象一样被加载、保存、赋值、复用。我们以 Demo 项目中使用的两个资源为例:
图像资源
当你将 icon.svg 拖入多个 Sprite2D 节点时,Godot 实际上是创建了一个 CompressedTexture2D 类型的纹理资源,并在多个节点之间共享引用,而不是复制多份图片。这样做的好处是节省内存、提升性能。
你可以点开Player场景的Sprite2D节点的Inspector,将鼠标放到Texture属性上,查看到这个纹理资源,它是一个 CompressedTexture2D 类型的资源。这个纹理资源不会在场景文件中保存图像数据,而是引用了路径 res://assets/icon.svg。
如果你复制了节点,在默认设置下,资源会在多个节点之间共享引用,这样你在一个地方做的改动,其他使用这个资源的地方也会随之改变。如果你希望某个节点使用资源的独立副本,而不影响其他地方,可以在节点的资源设置处选择Make Unique。
一般情况下,资源默认保存在场景文件中。如果你希望资源能保存在文件系统中,可以在资源设置处选择save as,将其保存为单独的tres文件。
当场景被实例化之后,如果修改原来场景中的资源,那么其它实例化的场景也会受到影响,如果你希望每个实例化的场景资源都是独立的,可以在资源设置处选择Local to Scene。
通过这几种方式,你可以灵活地控制资源的引用范围、修改范围和保存方式。
场景资源
player.tscn 是我们构建好的角色场景,它本质上是一个保存了节点树结构的资源文件,采用人类可读的 .tscn 文本格式。你可以尝试用VSCode这类文本编辑器来打开阅读试一试。
在一个 .tscn 文件中,不仅记录了每个节点的类型、结构、名称、Transform 属性,还记录了节点的脚本引用、资源绑定、动画轨道等信息。
当我们在 level.tscn 中使用“Instance Child Scene”功能将其嵌入时,Godot 并不会复制 player.tscn 的内容,而是建立一个引用指向 res://scenes/player.tscn。
这意味着:我们可以在多个关卡中反复使用同一个 Player 场景,而不产生重复内容;一旦修改了 player.tscn,所有使用它的实例都会自动更新。
Godot 的资源系统将图片、音效、脚本、场景等统一管理,并通过 res:// 路径体系让开发者轻松引用。你可以像堆积木一样拖拽资源、组织结构,通过场景树和属性面板构建完整的游戏世界。掌握资源系统的基本使用,是迈向更高效开发的第一步。
本章小结:
在本章中,我们从零开始学习了 Godot 编辑器的使用方法,掌握了构建项目、创建场景、组织节点、管理资源以及制作动画的基本操作。你已经动手完成了一个包含图像与动画的简单游戏场景,也初步理解了“场景即模块、节点即功能部件”的游戏构建思路。
我们特别强调了以下几个关键知识点:
-
Godot 编辑器结构:熟悉 2D 编辑区、场景树、资源管理器与属性面板的用途;
-
节点与场景的关系:理解每个节点都是类的实例,场景是由节点构成的层次结构;
-
资源系统的用法:掌握如何使用 res:// 路径、拖拽资源、复用场景与图像资源;
-
动画系统的基础:通过 AnimationPlayer 控制节点属性随时间变化,实现视觉表现;
-
实战练习:综合运用节点、资源与动画,搭建了第一个动态运行的可视游戏场景。
至此,你已经完成了从“安装软件”到“做出第一个动画场景”的重要跨越。你不再只是“看到”游戏,而是亲手“构建”游戏的一部分。