Godotline模板手册

Godotline模板 V2 使用手册


  • 本页面将会介绍模板的使用方法。Godot基本操作本页面不予讲解,如遇问题请自行查询和解决。本教程适用于最新版模板
  • 完全理解本教程需要掌握一些基本的Godot操作。如对Godot的基本操作尚不熟悉,建议熟悉后再阅读本教程
  • 写教程挺麻烦的,所以这里只写一些与冰焰模板不一样的地方,冰焰模板可移步至https://maxiceflame.github.io/tutorial/

初始化项目

打开项目后,望着一望无际、空空如也的场景,你可能会感到迷茫而无所适从。
点击右上角“模板”字样,点击新建关卡
图片
接下来填写你的关卡名称、
模板场景(Default代表最小可玩场景;Sample是可正常通关的示例场景)、
关卡id(随便填)
图片


项目结构管理规范

核心原则:所有关卡相关资源统一归置在 [Scenes]/关卡目录 下,便于集中管理与版本控制。

  • 推荐做法:按关卡维度组织场景、脚本、音频等资源,保持项目根目录简洁。
  • 禁区提示:如关卡要被合集收录,#Template 不建议直接修改。因为导出时会排除#Template目录
    为了方便关卡的收录工作,冰焰模板的场景在#Template/[Scenes]/下,我们将其移动到了/[Scenes]/下,建议在LevelData中设置材质颜色,如需添加新材质,则应在关卡场景目录下创建。
    总结就是只能在新建关卡目录放东西

为节点附加组件

由于Godot“组合先于继承”的设计语言,你不能直接像在Unity一样点击"Add Compent"按钮来为节点附加组件。
关卡里有大量"碰到就触发某种效果"的区域(跳跃、传送、扣血、播放动画……)。如果每种效果都单独实现一遍碰撞检测逻辑,会产生大量重复代码。为了解决这个问题,godot-line 把"检测碰撞"和"碰撞后做什么"拆成了两个独立部分:父触发器负责碰撞检测,子组件负责具体行为,两者通过约定的方法名协作,而不是通过继承耦合在一起。
V2版本之前,项目一直使用触发器+脚本的方法实现,但对于需要多个功能同时触发的时候,多个触发器重叠在一起就会显得冗余。V2 版本的毁灭性更改就使用了“组合先于继承”的思想,

现在,父节点是一个BaseTrigger,你只需在其下添加多个Node或Node3D节点并附加脚本就可以使其发挥多个作用
类似于这样:

图片
父层:Trigger — #Template/Trigger.tscn,脚本为 BaseTrigger.gd,负责监听 body_entered 碰撞信号并分发触发事件 Trigger.tscn
子层:Comp1 — 类型 Node3D,挂载具体组件逻辑(如 Jump.gd)
子层:Comp2 — 类型 Node3D,挂载具体组件逻辑(如 JumpPredictor.gd)
子层:。。。。。。
注意:#Template/[Scripts]/Trigger/下是组件触发器脚本,用上述方法;#Template/[Scripts]/Trigger/Single下是普通触发器脚本,直接附加在Area3d上

EventTrigger

空Call method的时候默认调用Trigger()

为模型创建碰撞体积

点击你想要为其添加碰撞体积的MeshInstance3D节点
图片
点击编辑器上方的“网格”按钮
图片
点击创建碰撞形状
图片
设置碰撞形状位置为“静态物体子节点”;碰撞形状类型为“单一凸形状”(如果你的模型很不规则,或者创建好形状后不尽人意,可以使用三角网格)。点击创建按钮
图片
选择刚刚创建好的在MeshInstance3D下的StaticBody3D节点
图片
展开“碰撞”一栏
图片
此时可以选择你想将其作为的碰撞类型(碰撞层2为地板;层3为墙。建议只设一个碰撞层,我也没试过多个会怎样)
注意:本模板并没有冰焰模板的特性,即撞到地板后会有特殊的物理效果。本模板撞到较垂直、较高的地板直接死,可以自行验证一下判定在哪里

如何更新模板

由于模板迭代速度太快,大家都想用到新功能,而不是像冰焰模板那样固定在冰3(3.?)或冰4(4.7.2)
为此,提供一下几种解决办法:

1.(推荐)使用git merge upstream

自己新建一个github仓库后,询问ai:“将当前仓库的upstream设为: https://github.com/godotline/godot-line
后需要更新时,直接询问ai:“合并upstream,遇到冲突时以远端为准”
此后,他会帮你同步最新(不稳定)模板代码,并处理冲突。

手动merge

git merge upstream
后出现冲突自行解决

2.将最新模板直接覆盖本地

不推荐,可能会出现冗余。

3.将关卡复制到最新模板

比将最新模板直接覆盖本地成功率高,可能会出现缺少依赖的问题,弹出对话框选择对应依赖即可。

毁灭性更改问题

示例:
图片
图片

画面雾效:灰蒙蒙 vs. Unity 式雾气

问题:开启 Fog 后画面整体发灰,缺乏层次感。

解决方案:将 Fog 模式切换为 Depth

参考实现:Inverted World 开头场景(见下图),通过 Depth Fog 实现远近景分离,避免全局雾效导致的"蒙灰"感。

Inverted World Depth Fog 示例

posted @ 2026-03-14 17:34  meny  阅读(256)  评论(0)    收藏  举报