Godot 4 + .Net 8 开发经验分享

我用 Godot 4 + .Net 8 + Rider 开发 3D 项目也快半年了,遇到了不少问题踩了不少坑,大部分问题都已经找到了解决方法并留下了一些开发经验,分享给需要的佬友。还有少量没有摸清原理的问题,如果有同样使用 .Net 开发 Godot 的佬友感兴趣可以一起探讨一下。 因为笔记都是用汉...
Godot 4 + .Net 8 开发经验分享
Godot 4 + .Net 8 开发经验分享

我用 Godot 4 + .Net 8 + Rider 开发 3D 项目也快半年了,遇到了不少问题踩了不少坑,大部分问题都已经找到了解决方法并留下了一些开发经验,分享给需要的佬友。还有少量没有摸清原理的问题,如果有同样使用 .Net 开发 Godot 的佬友感兴趣可以一起探讨一下。

因为笔记都是用汉语写的,所以先不往 Godot Forum 上发了。

在正文之前容我吐槽一下,Godot 对 C# 的支持不太友好。

吐槽 (点击了解更多详细信息)

不过对于基本功能的技术实现,Godot 对 .Net 支持是足够的。况且 Nuget 上大部分轮子都可以直接用在 Godot .Net 项目上,这么看 Nuget 的社区生态 被迫 弥补了 Godot 社区缺失的生态。但始终缺少针对 Godot 的特化轮子,因此自己造轮子、改轮子对目前的 Godot .Net 开发者而言是绕不过去的坎。

以下是我在开发过程中的大部分笔记,少部分缺少参考价值的没有放出(序号是记录时的笔记序号)。

声明:这些笔记内容的记录时间在 Godot 4.4 ~ Godot 4.5,对于 Godot 4.6(2026.5 最新版本)应该仍然适用,但是在以后的版本可能会发生过时的问题。请以笔记中的官方文档链接为准。

C#中GodotObject的释放,Dispose()和Free() #1 (点击了解更多详细信息)
Godot的右手坐标系和顺时针顶点环绕顺序 #2 (点击了解更多详细信息)
Godot 在 C# GC 上的一些特性 #3 (点击了解更多详细信息)
Godot的内存管理机制 #4 (点击了解更多详细信息)
慎重使用Godot的 [Tool] 属性及Godot编辑器的即时预览功能 #6 (点击了解更多详细信息)
Godot的 `TextMesh.SetFontSize()` 是异常耗时的操作 #8 (点击了解更多详细信息)
顶点变换需要绑定变换AABB #10 (点击了解更多详细信息)
InputEvent的冲突问题 #11 (点击了解更多详细信息)
GDShader 奇怪的 UV 特性 #13 (点击了解更多详细信息)
Godot 资源的打包和读取 #15 (点击了解更多详细信息)
Image 不能直接从资源加载 #16 (点击了解更多详细信息)
Godot 的文件路径 #17 (点击了解更多详细信息)
有关 Godot “Z冲突”的讨论 #18 (点击了解更多详细信息)
Godot 的 UV 坐标系 #20 (点击了解更多详细信息)
GDShader 中与 sampler2D 相关的 uniform hints #21 (点击了解更多详细信息)
MultiMesh 存在的限制 #22 (点击了解更多详细信息)
通过泛型获取类型的潜在问题 #23 (点击了解更多详细信息)
Godot 构建项目时切换调试版本和发布版本 #24 (点击了解更多详细信息)
Godot 调试时存在的问题 #25 (点击了解更多详细信息)
Godot 节点挂载 C# 泛型类时需要注意的地方 #26 (点击了解更多详细信息)
旋转应该尽量使用 Quaternion 而不是 Rotate #27 #28 (点击了解更多详细信息)
构造 Quaternion 的数学意义 #38 #40 (点击了解更多详细信息)
ArrayMesh 使用自定义顶点数据的方法 #31 (点击了解更多详细信息)
使用 instance uniform 以复用材质 #33 (点击了解更多详细信息)
拷贝 Godot 着色器材质时着色器参数的拷贝情况 #34 (点击了解更多详细信息)
Godot 4.5 mono AOT 导出 #35 (点击了解更多详细信息)
int 转为 enum 时,若 int 值超出 enum 范围在 C# 中不会报错 #36 (点击了解更多详细信息)
像管理指针那样管理节点类型 #39 (点击了解更多详细信息)
C# 程序集加载规则(初步探明) #41 (点击了解更多详细信息)
Godot 项目引用类库时的注意事项 #43 (点击了解更多详细信息)
动画应该由 _Process() 处理 #44 (点击了解更多详细信息)

1 个帖子 - 1 位参与者

阅读完整话题

来源: LinuxDo 最新话题查看原文