在Lua中初始化C#类。

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

点赞
用户3347282
用户3347282

这可以通过使用CLRPackage并使用它来首先加载程序集来解决问题。

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

然后只有通过以下方式才能将类名链接到实际的C#类(必须在尝试在Lua中访问之前完成):

//Lua
Campfire=JASG.Campfire;

然后可以通过普通实例化进行操作

//Lua
cf = Campfire()
2014-04-08 14:29:38