5 分钟跑通 Godot 官方示例项目:零基础的第一套练手模板
2026/9/18 4:31:51 网站建设 项目流程

5 分钟跑通 Godot 官方示例项目:零基础的第一套练手模板

【免费下载链接】godot-demo-projectsDemonstration and Template Projects项目地址: https://gitcode.com/GitHub_Trending/go/godot-demo-projects

这是 Godot 引擎的官方示例项目库:一百多个独立可运行的 Demo,覆盖 2D、3D、移动端、音频到联网。读完这篇,你能自己跑起四个方向的 Demo,并看懂它们源码里的关键几行。

先跑起来:5 分钟看到画面 🎮

先把画面跑出来,理解的事往后放。这份 Godot 官方 Demo 库的结构很简单,每个子目录都是一个完整工程,各自带 project.godot:

  1. 克隆仓库:git clone https://gitcode.com/GitHub_Trending/go/godot-demo-projects
  2. 用 Godot 打开你想玩的子目录(比如2d/dodge_the_creeps),不用管仓库根目录。
  3. 按 F5。绝大多数 Demo 零配置直接能玩。

不知道从哪玩起的话,先试这三个:

  • 2D 入门:2d/dodge_the_creeps/,躲弹幕的小游戏,最快让你熟悉场景树和信号。
  • 3D 入门:3d/squash_the_creeps/,同一个主题的 3D 版本,顺便看看相机和灯光怎么摆。
  • 移动端入门:mobile/multitouch_cubes/,多点触控推动方块,直接感受触摸输入和鼠标的差别。

让 NPC 绕开障碍自己找路 🧭

看完这节,你能自己写出"点一下地面,角色自动避开障碍走过去"。

它管的事是:开放世界里 NPC 不能靠手摆关键帧,得有一套寻路系统——先标出哪些格子走不了,再算出最短路线,最后让角色沿着路线滑过去。

示例项目在 2d/navigation_astar/ 和 2d/navigation/,是两份 Godot 2D 导航示例:前者基于网格 A* 寻路,适合 tilemap 地图;后者用导航多边形加智能体,适合开放 2D 场景。3D 版在 3d/navigation/,地图大时看分块方案 3d/navigation_mesh_chunks/ 和 2d/navigation_mesh_chunks/。

读哪几个文件:核心是 pathfind_astar.gd,全部围绕一个AStarGrid2D对象:

var _astar := AStarGrid2D.new() _astar.region = Rect2i(0, 0, 18, 10) _astar.cell_size = Vector2i(64, 64)

声明好区域和格子大小,把实心格标成不可通行,点击时取路径点序列,character.gd 只负责在物理帧里朝下一个途经点移动。3D 侧重点看 navmesh.gd:鼠标射线怎么投到导航网格上、烘焙出的 NavMesh 怎么被角色追路。

做法适用地图关键类
网格 A*tilemap / 格状地图AStarGrid2D
导航多边形 + 智能体开放 2D 场景NavigationRegion2D、NavigationAgent2D
导航网格 NavMesh复杂 3D 地形NavigationServer3D

让碰撞、关节和车轮都按真实物理走 🧱

看完这节,物理参数不用再猜,每种行为都有可运行的对照场景。

它管的事是:碰撞形状、关节链、单向平台、车轮摩擦——新手最容易"看起来对、实际不对"的一堆点。官方的物理测试集按"一个案例一个场景"的方式写,每个参数的预期表现一目了然。

示例项目在 2d/physics_tests/ 和 3d/physics_tests/,两边都有主菜单,可以直接跳进单个案例运行。想做平台跳跃就去 2d/physics_platformer/,里面演示了刚体角色配合平台、跷跷板的完整玩法;关节、斜坡、移动平台的案例都放在 2d/physics_tests/tests/functional/ 里现成可跑。

读哪几个文件:先看2d/physics_tests/tests/functional/test_joints.gd,它只是创建几种关节然后看链条怎么摆动,真正的参数在配套的 test_joints.tscn 里的 Joint2D 节点上。再看 test_raycasting.gd,射线每帧探测地面,这个"脚下检测"的思路在 3D 侧的3d/physics_tests/tests/functional/test_rigidbody_ground_check.gd里同样能找到。

给场景补上全局光照和电影感滤镜 ✨

看完这节,你知道 Godot 全局光照设置该拨哪个开关,也能用十几行着色器给画面套一层滤镜。

它管的事分两半:一是光本身,直射光只照亮表面,"墙把光弹回地面"的那层柔光得靠全局光照补;二是画面后处理,老胶片、模糊、海市蜃楼这类效果和灯光无关,是屏幕空间着色器的活。

示例项目在 3d/global_illumination/:一个场景里就能在光贴图、VoxelGI、SDFGI 之间来回切着看差别。2D 光照和遮挡看 2d/lights_and_shadows/,精灵级的溶解、描边、发光在 2d/sprite_shaders/,全屏滤镜在 2d/screen_space_shaders/,一共 11 个现成效果。

读哪几个文件:3d/global_illumination/test.gd开头有个GIMode枚举,脚本按枚举顺序逐个切换 GI 模式,读它就能弄清每种模式的观感差异怎么来的。着色器那边直接打开2d/screen_space_shaders/shaders/old_film.gdshader,单文件不到 50 行,噪点加暗角的组合方式最典型。

把手机传感器和跨平台输入接进游戏 📱

看完这节,你能让手机倾斜控制 3D 场景,还有一套现成的键位重映射和分辨率适配方案可抄。

它管的事是:手机上光靠虚拟按键不够,得读加速度计、重力、陀螺仪的原始数据;键盘、手柄、触摸又是三种设备,同一套"动作"要映射一次、到处通用。

示例项目在 mobile/sensors/,这是一份 Godot 移动端传感器演示,把手机转向,3D 场景里的方块就跟着你的姿态走。键位重映射界面在 gui/input_mapping/,多分辨率和像素风适配在 gui/multiple_resolutions/,多点触控手势看 mobile/multitouch_cubes/。

读哪几个文件:mobile/sensors/main.gd里三个原始数据一次拿齐:

var acc := Input.get_accelerometer() var grav := Input.get_gravity()

脚本把这两个向量换算成旋转矩阵去驱动方块朝向,文件注释还解释了为什么陀螺仪要单独积分——它是角速度而不是方向。输入映射读 gui/input_mapping/ActionRemapButton.gd,看一个按钮怎么监听任意按键并写回输入表。

一张表看懂全部示例

上面没展开的部分,按这张表随取随用:

目录解决的问题什么时候看
audio/音效、BPM 同步、麦克风录音、MIDI给游戏配乐配音效时
networking/多人联机、WebSocket 聊天需要两个以上玩家时
gui/字体、主题、文本、分辨率适配做 UI 界面时
loading/Autoload、线程加载、运行时存档需要存档或异步加载时
viewport/分屏、3D 里嵌 2D、屏幕捕获做同屏多人或特殊镜头时
compute/计算着色器生成高度图、纹理追求极限性能时
xr/VR/AR、OpenXR 交互与手势做头显游戏时
mono/上述 Demo 的 C# 版本习惯 C# 而非 GDScript 时
plugins/编辑器插件开发想扩展编辑器功能时
misc/多窗口、手柄、HDR 输出碰到冷门需求时
2d/finite_state_machine/角色行为状态机做动作控制时
2d/role_playing_game/网格 RPG、回合制战斗、对话做 RPG 时

最短学习路线

  1. 玩:把 2d/dodge_the_creeps/ 和 2d/physics_tests/ 各跑一遍,只动手不读码。
  2. 读:对照 docs/official.md 过一遍核心概念,再挑一个导航 Demo 逐行跟读。
  3. 试:把 2d/sprite_shaders/ 里的一个着色器挂到自己的精灵上,或用 3d/global_illumination/ 对比一轮 GI 效果。
  4. 查:API 找不到去 doc/api/ 翻,缺现成能力去 plugins/addons/ 逛一圈。
  5. 挑战:从上表挑一个还没读过的 Demo,先读它的 README,再读代码。

走完这条线,导航、物理、光影、输入四条核心脉络就都过手一遍,下次卡壳时,回这份 Godot 官方示例项目库里找对应 Demo 抄参数就行。

【免费下载链接】godot-demo-projectsDemonstration and Template Projects项目地址: https://gitcode.com/GitHub_Trending/go/godot-demo-projects

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询