跳转至

第三章: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 版本
  • 有时在点击下载时,会跳转到一个“捐赠”页面,这是项目的众筹支持界面。你可以自由选择捐赠,也可以直接点击跳过,文件会自动开始下载。

alt text 图示是下载 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这类深色主题。

alt text 上图是设置界面示例。因为Light主题比较适合截图说明,你可以设置为自己喜欢的主题。

2. 如何创建一个项目

成功启动 Godot 引擎之后,首先会看到的是“项目管理器”(Project Manager) 界面。这里是你管理所有 Godot 项目的地方。刚开始,这个列表可能还是空白的,但很快,你就会在这里看到你亲手制作的一个个游戏。

alt text

2.1 创建新项目的过程

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

alt text

在创建窗口中,你需要填写以下几项内容:

  • 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 会在你指定的文件夹中创建一个完整的项目目录,结构大致如下:

Demo/
├── project.godot       ← Godot 项目的配置文件(项目入口)
├── .godot/             ← 缓存信息(可忽略)
└── 其他你添加的资源(图像、音频、场景等)

其中的 project.godot 是 Godot 项目的核心配置文件,类似于“项目说明书”。只要这个文件存在,Godot 就能识别出它是一个有效的项目。你可以从操作系统的文件管理器中打开刚刚创建好的Demo文件夹,看看里面有什么。

在接下来的小节中,我们将进入编辑器,开始动手搭建第一个真实的游戏场景。

3. 编辑器界面

成功创建项目后,Godot 会自动打开项目并进入主编辑器界面。这是你构建游戏世界的“指挥中心”。虽然第一次看到它可能会有些复杂,但别担心,我们将一块一块地认识这个界面。

Godot 编辑器可以划分为四个主要区域,它们分工明确,各司其职:

alt text

区域位置 面板名称 功能
顶部 工具栏 运行、保存、设置、菜单
中央 主工作区 编辑场景或脚本
左侧 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” 按钮。你会发现网格变成了平面,左侧的标尺也变成了像素单位。

alt text 在最新版本的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:程序运行时出现报错或断点调试
  • AnimationAudio 等面板:用于制作动画、管理音频资源

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。

alt text

此时,场景树中包含两个节点:Node2D(根节点) 和 Sprite2D(其子节点)。你可以尝试点击不同的节点,在右侧的 Inspector 面板中查看它们的属性。

Node2D 主要用于表示二维空间位置,它的属性主要是 Transform,也就是负责空间变换,例如坐标、旋转和缩放;Sprite2D 则是精灵节点,可以用于显示图像,它有一个 Texture 属性,用于存放纹理,目前还是空的。

我们可以从左下角的 FileSystem 面板中将 icon.svg 拖入 Sprite2D 的 Texture 属性,这样在主窗口中就可以看到这个图片显示出来了。

alt text

接下来,右键点击 Node2D,选择 Rename,或使用快捷键 F2,将其重命名为 Player。

点击菜单栏中的 Save Scene,或使用快捷键 Ctrl + S 保存场景,命名为 player.tscn,这样场景被保存成一个文件,你会在 FileSystem 面板中看到这个场景文件。

alt text

现在我们可以观察场景视图中出现的一条红线和一条绿线,它们的交点就是二维坐标系中的原点 (0,0)。

选中 Sprite2D,修改其 Transform 属性,将 Position 改为 (100, 100),你会发现图像被移动到了原点右下方。这说明 Godot 的 2D 坐标系是,X 轴正方向向右,而Y 轴正方向向下。

Transform 属性中还包含 Rotation(旋转)、Scale(缩放)等,你可以自由尝试修改这些属性。

alt text

如果你选中场景树中的 Player 节点,并将其 Position 改为 (500, 200),你会发现整个 Player 节点连同它的子节点 Sprite2D 一起移动了。这说明:子节点的位置是相对于父节点的位置而言的,而不是相对于整个画布。

现在场景中只是一个静态图像,下面我们让它动起来,操作步骤如下:

  • 将 Player 节点的位置恢复为 (0, 0)。
  • 给 Player 添加一个子节点:AnimationPlayer。
  • 选中 AnimationPlayer,底部会出现动画编辑器区域。
  • 在动画区域中点击 Animation菜单,选择 New 来新建动画,输入动画名称为 rotate。

alt text

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

alt text

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

alt text

点击右上角运行按钮旁的 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子节点。将两个子节点移动到窗口中间位置,将它们位置分开一些。运行当前场景,你会看到两个图标在同时旋转。

alt text

上述的操作称为场景的实例化。player.tscn文件是保存为文件的场景,也称之为打包的场景(Packed Scene)。它可以在其他场景中以“副本”方式被嵌套使用。你可以把 Packed Scene 理解为“模板”或“蓝图”,就像女娲先设计好一个人类模型,再批量创造出很多人一样。如果你熟悉面向对象编程,这就好像是类(class)和对象(object)的关系。

在实际的游戏开发中,我们可以围绕着场景和节点来设计和拆解游戏元素。关卡是一个最大的场景,但我们不会把所有游戏单位作为节点放在关卡场景中,这样场景变得很复杂。可以将关卡中的某些单位,例如敌人,设计成一个场景。就像例子中的player场景一样,敌人场景可以使用不同功能的节点来构建。然后在关卡中将敌人场景实例化,创建多个敌人副本。这些容易维护,也方便扩展。

所以,从上述例子中,可以理解到Godot引擎来开发游戏的思路,就是分而治之。将我们设计的游戏元素按一定逻辑进行分拆,分拆成可以重复利用的中间组件,用基本的节点来构建出这些组件,也就是构建场景。这种构建游戏项目的方式非常的自然和高效。

5 本章使用的节点

在上一节中,我们搭建了一个包含图像和动画的简单场景,用到了三个非常关键的节点:Node2DSprite2DAnimationPlayer。这三个节点是我们开发 2D 游戏时最常接触的“基础模块”,它们之间既各司其职,又密切配合,构成了 Godot 游戏对象的基本结构。

我们可以将它们与第二章介绍的几个基础概念一一对应起来:

基础概念 对应节点 节点在 OOP 中的角色 功能说明
屏幕坐标系与位置 Node2D Node2D 是一个类(Class) 表示空间位置、旋转与缩放
图像显示与精灵 Sprite2D 继承自 Node2D 的子类 显示图像资源,具备坐标功能
动画插值系统 AnimationPlayer 继承自 Node 的动画控制类 控制其他节点属性随时间变化
面向对象思想 所有节点都是类 每个节点类型都是一个可实例化的类 支持继承、复用、封装,实现模块化构建

在 Godot 中,每种节点(如 Node2D、Sprite2D、AnimationPlayer)背后都有一个对应的类(Class)。类就像是“蓝图”或“模板”,描述了该节点应具有什么样的功能和属性。你可以把 Sprite2D 理解为“精灵节点”的类,它规定了精灵可以显示图像、具有位置、可以被动画控制等功能。而当你在编辑器中点击“+”添加一个 Sprite2D 节点时,Godot 实际上是在“根据这个类,创建了一个节点实例(Instance)”,就像是根据模板造出了一个具体的“精灵对象”。

Godot中所有的节点也都遵循继承体系。在面向对象编程(OOP)中,继承(Inheritance)是一种非常重要的思想:一个“子类”可以继承“父类”的功能,并在此基础上扩展新的能力。就像“鸟类”可以继承“动物”的属性(会移动、有生命),并增加自己的特性(会飞)。

在上述三种节点中,Sprite2D 继承自 Node2D,所以它也拥有 positionrotation 等位置属性。而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 (Node2D)
├── Sprite2D           # 显示图像
└── 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 控制节点属性随时间变化,实现视觉表现;

  • 实战练习:综合运用节点、资源与动画,搭建了第一个动态运行的可视游戏场景。

至此,你已经完成了从“安装软件”到“做出第一个动画场景”的重要跨越。你不再只是“看到”游戏,而是亲手“构建”游戏的一部分。