我正在使用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 example,当然还有LuaInterface Reference,似乎会暴露给lua。我似乎无法解决这个错误,并且我已经尽职尽责地进行搜索。我可以管理的脚本的唯一其他行为会引发类似的错误,但它在"(a table value)"
的位置。我究竟做错了什么?提前谢谢!
我尝试明确执行Campfire._ctor()
,但_ctor()
是字符串值。
答案 0 :(得分:0)
这是通过使用CLRPackage并使用它来首先加载程序集来解决的。
//Lua
JASG = CLRPackage("JASG", "JASG")
然后,只有这样才能将类名链接到实际的C#类(这必须在尝试在Lua中访问它之前完成):
//Lua
Campfire=JASG.Campfire;
然后可以通过
进行正常的实例化//Lua
cf = Campfire()