Godot GDScript 4.x 编程指南
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/godot-gdscript-sh-18kosl。
技能介绍
问题场景
在 Godot 4.3+ 项目中,许多脚本仍沿用 Godot 3.x 的 yield、connect、export var 等写法,导致无法解析、引用节点失败或运动逻辑与帧率绑定。这个技能聚焦 .gd 文件本身的正确性,帮助开发者写出静态类型、生命周期清晰、事件响应规范的 GDScript 2.0。
核心能力
- 类型优先:使用
var hp: int = 10、func add(a: int, b: int) -> int:等显式类型,利用:=做推断,把错误提前到解析阶段。 - 生命周期规范:区分
_ready()、_process(delta)与_physics_process(delta),移动和物理逻辑放入固定物理帧。 - 节点引用:用
@onready获取子节点,避免在_init()中使用$NodePath导致节点未入树。 - 信号与协程:使用 4.x
Callable语法连接信号,用await替代 3.xyield,减少轮询式事件处理。 - 导出参数:用
@export将可调参数暴露到 Inspector,方便策划或运营修改。
适用边界
该技能适合编写、修复或迁移单个 .gd 脚本,不覆盖场景树结构、实例化、signal 架构或 C# 方案。遇到 class_name 重复、整数除法截断、RPC 注解变化等问题时,优先按 4.x 注解与类型约束修正。
使用场景
- 在 Godot 4.3 项目里处理脚本无法解析,把 3.x 的 yield 与旧 connect 改成 await 和 Callable 连接。
- 把玩家移动逻辑从 _process 迁到 _physics_process,避免移动速度依赖帧率。
- 用 @export 暴露关卡参数,用 @onready 获取子节点,避免 _init 里引用不到节点。
- 为角色技能声明并连接信号,用 await 等待计时器或信号完成后再继续流程。
适合人员
- 维护 Godot 4.3 项目的独立游戏程序员,需要把 3.x 脚本改成可解析的 GDScript 2.0。
- 做角色和关卡脚本的游戏客户端工程师,需要规范 @export、@onready 与信号 await 写法。
- 从 C# 或 Unity 转 Godot 的引擎工程师,需要理解 4.x 信号、类型与生命周期约束。
- 负责把策划数值落到场景里的技术美术,需要暴露可调参数并避免运行期引用错误。