【发布时间】:2014-05-15 16:06:11
【问题描述】:
我正在使用 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()是一个字符串值。
【问题讨论】:
-
你是如何将你的类暴露给 lua 的?你是如何在 lua 中加载它的?
-
LoadScript("sh_CLRPackage.lua")然后import "JASG"。我已经更新了这个问题。这现在告诉我Campfire是一个字符串值。 -
你将不得不展示 Campfire 是如何暴露在 Lua 中的。没有那个,就没法说了。
-
@Schollii
lua["Campfire"] = typeof(Campfire);告诉我 Campfire 是一个用户数据值。如果我忽略它并让 luainterface 完成访问我的程序集类的工作,则错误在"attempt to call method 'SetPosition' (a string value)"的下一行 -
可能问题出在 C# 级别。显示产生问题的最小 .cs。
标签: c# lua luainterface