Получить список функций от NLua

Я использую NLua для интерфейса скрипта с моим приложением, если мое приложение принимает несколько файлов, таких как one.lua и two.lua

Я хочу получить все функции во всех файлах в список luafunctions

List<LuaFunctions> Functions;

NLua, похоже, не имеет такой возможности, но есть ли способ обойти это, есть метод GetFunction(string), который будет возвращать функцию, которую вы назвали, я могу, конечно, сделать метод грубой силы на метод GetFunction, но это сделает мой приложение займет несколько часов, чтобы начать с.

Любые способы обойти это и получить все функции во всех файлах в список luafunctions?

1 ответ

Решение

Поскольку функции не могут быть перечислены на ровном месте, я нашел другой способ обойти это пару часов спустя.

я перечислил все функции на столе. Итак, мой код Луа:

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();

В качестве примера. Мне потребовалось время, чтобы найти этот обходной путь, и я надеюсь, что это кому-нибудь пригодится.

Другие вопросы по тегам