2

LuaInterface 从 C# 访问 Lua 函数时遇到问题。

如果我有这样定义的 LuaFunction

function object:OnEvent()
  -- Do something
end

这可以通过正常调用从 C# 访问,例如

(object["OnEvent"] as LuaFunction).Call();

没有参数。但是如果你看一下 Lua 中函数的定义,我用了一个“:”来定义函数。我可以这样重写它,这是一样的:

function object.OnEvent(self)
  -- Do something
end

到目前为止,一切正常。但是现在,我将 OnEvent 替换为另一个函数。

function Replacement(self)
  -- Do something other
end

object.OnEvent = Replacement

现在我遇到了一个问题。在这种情况下,我必须使用参数(对于 self)调用该函数。如果我不这样做,我会得到一个错误。

我可以通过两件事来解决这个问题:

  1. 说 LuaInterface,它应该每次调用带有“:”的方法,并带有 self 的参数。
  2. 我可以从 LuaInterface 中检索该函数需要多少参数。

但是,如何做这件事之一?

谢谢你。

4

0 回答 0