从NLua获取函数列表

时间:2014-03-16 22:34:57

标签: c# lua nlua

我正在使用NLua与我的应用程序进行脚本接口 如果我的应用程序采用多个文件,如one.lua和two.lua

我希望将所有文件中的所有函数都添加到luafunctions列表中

List<LuaFunctions> Functions;

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

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

1 个答案:

答案 0 :(得分: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();

作为一个例子。 花了一些时间来找到这个解决方案,我希望它会使某些人受益。