chore(build): 搭建并验证 C# / C++(GDExtension) 原生构建环境(4.7.1 Mono)
为「GDScript→C#→C++」性能逃生梯备好可随时启用的工具链,运行时仍 100% GDScript。
C#:新增根 Rogue.csproj(Godot.NET.Sdk/4.7.1,net8.0,程序集名 Rogue);
csharp/ 下既有 3 个骨架 .cs 现可编译,dotnet build 与编辑器 --build-solutions 均 0 错通过。
C++:gdextension/ 下加 godot-cpp 子模块(master,因无 4.6/4.7 分支,配合本工程 dump 的
4.7.1 extension_api.json + gdextension_interface.h 经 custom_api_file 精确匹配 ABI);
SConstruct + 示例扩展 SpellforgeNative(含 PackedFloat32Array 零拷贝热路径写法);
SCons 自动探测 MSVC 构建出 debug .dll,headless 冒烟验证类注册/调用通过
(CLASS_EXISTS=true / multiply=42 / scale_inplace 正确)。
配套:.gitignore 忽略编译中间产物、保留 debug .dll 开箱即用;gdextension/README.md 记录构建/激活/升级流程;
CLAUDE.md 修正引擎版本 4.6→4.7.1 并更新「环境已就绪但休眠」现状。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
extends SceneTree
|
||||
# 临时冒烟脚本:headless 验证 C++ GDExtension 是否被加载、类是否可实例化调用。
|
||||
# 用法:godot --headless --path . -s res://gdextension/verify_native.gd
|
||||
func _init() -> void:
|
||||
var ok := ClassDB.class_exists("SpellforgeNative")
|
||||
print("CLASS_EXISTS=", ok)
|
||||
if ok:
|
||||
var n: Object = ClassDB.instantiate("SpellforgeNative")
|
||||
print("INFO=", n.native_info())
|
||||
print("MULTIPLY_6x7=", n.multiply(6.0, 7.0))
|
||||
var arr := PackedFloat32Array([1.0, 2.0, 3.0])
|
||||
print("SCALE_INPLACE_x10=", n.scale_inplace(arr, 10.0))
|
||||
quit()
|
||||
Reference in New Issue
Block a user