用途:在 Godot 4.3+ 中用 C#(GodotSharp NuGet 包)开发时,提供 C# 专属约定、与 GDScript 的 API 差异、项目搭建与互操作模式,示例全部为 C#。
主要能力:给出 C# 与 GDScript 的语法对照(变量、方法、信号、@export、@onready、match、class_name、preload、print、await、Array/Dictionary 等);说明 .csproj 与 .sln 由编辑器自动生成,NuGet 包在 <ItemGroup> 中添加,编辑后运行 dotnet restore;介绍 Godot 4.7+ 可选的 Godot.NET 预览绑定属性 EnableGodotDotNetPreview(实验性,生产项目建议不启用);列出 Rider、VS Code、Visual Studio 的插件与调试配置,并建议在 IDE 中打开 .sln。
必要用法:所有继承 Godot 类型的类必须声明为 partial,否则源生成器报 CS0260 或 [Export]/[Signal] 静默失效;方法、属性、[Export] 用 PascalCase,私有字段用 _camelCase;信号需 [Signal] 委托且名称以 EventHandler 结尾,用 EmitSignal(SignalName.X) 触发,用 += / -= 连接与断开;等待 Godot 信号用 await ToSignal(...),CPU 密集任务用 Task.Run 但不得在其中调用 Godot API;跨语言调用用 Call/Get/Set,[GlobalClass] 可让 GDScript 直接使用 C# 类,值以 Variant 传递。
适用场景与限制:C# 适合数学密集循环、大型集合处理等计算型系统;GDScript 更适合编辑器插件、@tool 脚本与快速迭代,两者可混用。注意 Variant 转换应使用 AsSingle/AsInt32 而非强制转换,Godot API 边界使用 Godot.Collections.Array/Dictionary,使用前用 IsInstanceValid 检查对象,缓存 StringName,避免 async void 吞异常。Godot 4.7 存在若干兼容性变更(如 Animation.Length 改为 double、Control.AccessibilityLive 枚举类型变更等),需重新构建并修正受影响符号。具体收费、价格与平台信息暂未提供。