Godot C# 游戏脚本
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/godot-csharp-2knp。
技能介绍
解决 C# 在 Godot 中的脚本痛点
在 Godot 引擎中使用 C# (.NET) 编写游戏逻辑时,开发者不仅要掌握 C# 语法,还必须跨越 GDScript 习惯与引擎底层反射机制之间的鸿沟。从节点生命周期的重载规则、导出变量在编辑器中的暴露,到信号与 C# 事件的桥接,这些细节往往隐藏着许多难以排查的编译或运行时错误。该技能专为 Godot 4.x (.NET / C#) 环境设计,帮助开发者在 C# 语境下精准落地游戏逻辑。
核心工作流与避坑指南
该技能的核心工作流直接对应引擎的源码生成器逻辑。首先,所有节点脚本必须是 partial 类并继承自 Godot 类型,否则 [Export] 和 [Signal] 等特性将因源码生成失败而报错。在方法重载上,C# 版本严格要求使用 PascalCase 命名(如 _Ready、_Process),且处理函数必须使用 double delta 而非 GDScript 中的 float,签名或大小写不匹配会导致引擎静默忽略。
在信号处理方面,声明 [Signal] 委托时必须以 EventHandler 结尾,引擎会自动将其映射为对应的 Godot 信号并生成 C# 事件。此外,技能重点提醒了值类型结构体(如 Vector2、Color)的修改方式——必须拷贝后赋值,而非直接修改字段。开发者还需确保安装了与 Godot 版本匹配的 .NET SDK(4.3/4.4 对应 .NET 6.0,4.5+ 对应 .NET 8)。最后,遵循引擎惯例使用 QueueFree() 释放节点,并通过 GD.Print 将日志输出到 Godot 专属控制台,而非系统控制台。
使用场景
- 在 Godot 4.5 项目中用 C# 编写玩家控制节点脚本,处理输入与移动逻辑
- 在 C# 节点脚本中通过 [Export] 暴露可调参数,在检查器中调整游戏配置
- 在 C# 与 GDScript 节点间传递数据,调用对方的方法
- 将 GDScript 的信号机制转换为 C# 事件,实现节点间事件通信
适合人员
- 使用 Godot 4.x C# 开发游戏的开发者,需要正确编写节点生命周期与导出字段
- 从 GDScript 转用 C# 开发 Godot 游戏的成员,需要掌握语法差异与互操作方法
- 在 Godot 项目中混合使用 C# 与 GDScript 的工程师,需要实现跨语言节点调用与信号传递