2

如果我的应用程序需要多个文件,例如 one.lua 和 two.lua,我正在使用 NLua 作为我的应用程序的脚本接口

我想将所有文件中的所有函数都放入 luafunctions 列表中

List<LuaFunctions> Functions;

NLua 似乎没有这样的功能,但是有没有办法解决它,有一个 GetFunction(string) 方法将返回您命名的函数,我可以在 GetFunction 方法上执行蛮力方法,但这将使我应用程序需要几个小时才能启动。

有什么方法可以解决这个问题并将所有文件中的所有函数都添加到 luafunctions 列表中?

4

1 回答 1

1

由于无法突然列出功能,几个小时后我找到了另一种解决方法。

我在一张桌子上列出了所有功能。所以我的lua代码:

function Start()
   // something
end

function Update()
   // something else
end

变成了这样:

var main = {}

function main.Start()
   // something
end

function main.Update()
   // something else
end

这样我就可以从表格列表中取出它们,使用

lua.GetTable({tablename});

我已经写了一个要求,它必须与文件命名相同,所以它会变成:

var funcList = lua.GetTable(Path.GetFileNameWithoutExtension(c:\main.lua));

这将采用并列出所有功能,然后我们可以使用:

lua.GetFunction(funcList[0]).Call();

举个例子。我花了一段时间才找到这个解决方法,我希望它会对某人有所帮助。

于 2014-03-18T09:50:01.777 回答