从NLua获取函数列表

本文关键字:列表 函数 获取 NLua | 更新日期: 2023-09-27 17:50:35

我使用NLua与我的应用程序的脚本接口如果我的应用程序需要多个文件,比如一个。Lua和two.lua

我想把所有文件中的所有函数都放到一个lufunctions列表中

List<LuaFunctions> Functions;

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

有什么方法可以解决这个问题,并将所有文件中的所有函数都转换为函数列表?

从NLua获取函数列表

由于函数不能突然列出,我在几个小时后找到了另一种方法。

i列出了表中的所有函数。所以我的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();
例如

。我花了一些时间才找到这个方法,我希望它能对一些人有益。