获取 NLua 的函数列表。

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

我想将所有文件中的所有函数都获取到一个luafunctions列表中

List<LuaFunctions> Functions;

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

是否有任何方法可以解决这个问题并将所有文件中的所有函数获取到一个luafunctions列表中?

点赞
用户2292584
用户2292584

由于不能直接列出函数,几个小时后我发现了另一种解决方法。

我在一个表格上列出了所有的函数。

所以我的 Lua 代码:

function Start()
   // somehthing
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-18 09:50:01