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 实现远近景分离,避免全局雾效导致的"蒙灰"感。

本文来自博客园,作者:meny,转载请注明原文链接:https://www.cnblogs.com/mmme/p/-/tutorial

浙公网安备 33010602011771号