gpt4 book ai didi

c# - NLua (LuaInterface) - 调用函数

转载 作者:太空宇宙 更新时间:2023-11-03 10:42:12 24 4
gpt4 key购买 nike

使用 NLua 运行 lua 脚本时如何调用函数? (一个 LuaInterface 分支)?

例如,现在我有:

lua.LoadFile("C:\\test.lua")
lua.Call();

但是,这只是运行脚本。在脚本中我有一个自定义函数。我希望能够只运行该功能。我试过:

lua.Call("functionTest")

但这没有用。我该怎么做?

我的lua脚本是这样的:

function functionTest()
someMethod()
end

或者,如果不可能——有没有办法在一个 lua 文件中包含不同的脚本?我希望能够使用不同的脚本参数运行相同的文件,例如:

script1 = {
-- Code
}

script2 = {
-- Code
}

谢谢。

最佳答案

要在 Lua 中运行一个函数,您需要首先执行实现该函数的脚本( block )。

例如,如果你有一个 block (x.lua)

 function MyFunction () 
print ("MyFunction")
end function

如果您使用 NLua.Lua.LoadFile(它调用 lua_load),编译后的代码将位于堆栈的顶部,您需要运行以“声明”该函数

最好的方法是使用 DoFile()DoFile 将加载并运行您的 block ,您的功能现在将“实现”。

要从 C# 调用您的 Lua 函数,您所要做的就是使用您的函数名称获取全局值。

 lua.DoFile ("x.lua"); // Now MyFunction is declared
LuaFunction myFunction = lua ["MyFunction"] as LuaFunction;
myFunction.Call ();

引用:NLuaBox Source code

希望对您有所帮助。

关于c# - NLua (LuaInterface) - 调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24927776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com