在Lua中实例化C#类

在Lua中实例化C#类,c#,lua,luainterface,C#,Lua,Luainterface,我正在使用LuaInterface库为我的游戏编写脚本引擎。尝试在Lua中实例化该类时出错。错误是: "./Scripts/sv_worldgen.lua:2: attempt to call global 'Campfire' (a string value)" 其中sv_worldgen.lua(全部): Campfire是C#中的一个类,根据和,它似乎暴露在lua中。我似乎无法回避这个错误,我已经对搜索进行了尽职调查。我可以管理的脚本的唯一其他行为会抛出类似的错误,但它是(表值)。我做错

我正在使用LuaInterface库为我的游戏编写脚本引擎。尝试在Lua中实例化该类时出错。错误是:

"./Scripts/sv_worldgen.lua:2: attempt to call global 'Campfire' (a string value)"
其中sv_worldgen.lua(全部):

Campfire
是C#中的一个类,根据和,它似乎暴露在lua中。我似乎无法回避这个错误,我已经对搜索进行了尽职调查。我可以管理的脚本的唯一其他行为会抛出类似的错误,但它是
(表值)
。我做错了什么?提前谢谢你


我尝试显式地执行
Campfire.\u ctor()
,但是
\u ctor()
是一个字符串值。

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

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

然后可以通过

//Lua
cf = Campfire()

你是如何让你的班级接触lua的?如何在lua中加载它?
LoadScript(“sh_CLRPackage.lua”)
然后导入“JASG”。我已经更新了问题。现在告诉我,
Campfire
是一个字符串值。你必须展示Campfire是如何暴露于Lua的。没有这些,就不可能说@Schollii
lua[“Campfire”]=typeof(Campfire)
告诉我Campfire是一个userdata值。如果我忽略了这一点,让luainterface完成访问我的程序集类的工作,那么错误就出现在下一行的
“尝试调用方法'SetPosition'(字符串值)”
中,也许问题出在C级。显示产生问题的最小.cs。
//Lua
Campfire=JASG.Campfire;
//Lua
cf = Campfire()