在 Lua 中实例化 C# 类
本文关键字:实例化 Lua | 更新日期: 2023-09-27 17:56:41
我正在使用LuaInterface库为我的游戏编写脚本引擎。 尝试在 Lua 中实例化类时出现错误。错误是:
"./Scripts/sv_worldgen.lua:2: attempt to call global 'Campfire' (a string value)"
sv_worldgen.lua在哪里(全部):
function GenerateChunk(worldChunk, chunkGridPosition)
tf = Campfire()
tf:SetPosition(chunkGridPosition)
end
Campfire
是 C# 中的一个类,并且似乎根据 CLRPackage 示例,当然还有 LuaInterface 参考向 lua 公开。 我似乎无法绕过这个错误,我已经做了尽职调查的搜索。 我可以管理的脚本的唯一其他行为会引发类似的错误,但在哪里"(a table value)"
. 我做错了什么? 提前谢谢你!
我尝试显式执行Campfire._ctor()
,但_ctor()
是一个字符串值。
此问题已通过使用 CLRPackage 并使用它首先加载程序集来解决。
//Lua
JASG = CLRPackage("JASG", "JASG")
然后,也只有这样,您才能使用将类名链接到实际的 C# 类(这必须在尝试在 Lua 中访问它之前完成):
//Lua
Campfire=JASG.Campfire;
然后可以通过
//Lua
cf = Campfire()