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

在 Lua 中实例化 C# 类

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

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

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

//Lua
Campfire=JASG.Campfire;

然后可以通过

//Lua
cf = Campfire()