在Lua中实例化C#类

时间:2014-04-03 16:59:00

标签: c# lua luainterface

我正在使用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()是字符串值。

1 个答案:

答案 0 :(得分:0)

这是通过使用CLRPackage并使用它来首先加载程序集来解决的。

//Lua
JASG = CLRPackage("JASG", "JASG")

然后,只有这样才能将类名链接到实际的C#类(这必须在尝试在Lua中访问它之前完成):

//Lua
Campfire=JASG.Campfire;

然后可以通过

进行正常的实例化
//Lua
cf = Campfire()