我在C# luainterface库中遇到了一些问题:
1.因此,我加载一个脚本并提取它的函数,如下所示:
LuaFunction function = lua.GetFunction("Update"); 但是,如果我加载两个包含相同名称的函数的不同脚本,该怎么办?如何从script1和script2中提取两个名称相同的不同函数?
2.如果我将函数加载到内存中,是否可以处理一个特定的函数,而不是所有的函数?
3.当我使用Lua.DoFile方法时,我希望从文件中执行特定的函数。有什么办法吗?
编辑
2.我发现了,我可以这样做
string f = @"
function hh()
end";
var result = lua.DoString(f)[0] as LuaFunction;但出于某种原因,我得到了空异常。知道为什么吗?
发布于 2013-11-16 16:00:18
DoString将返回脚本返回的内容。
lua.DoString ("return 10+10")[0]; // <-- will return Double. 20如果希望将Lua函数作为LuaFunction对象,则需要返回函数,或者更好的方法是使用[]运算符来获得hh的全局值。
lua.DoString ("function hh() end");
var hh = lua["hh"] as LuaFunction;
hh.Call ();下面是一个示例:https://github.com/codefoco/NLuaBox/blob/master/NLuaBox/AppDelegate.cs#L46 (但是使用NLua而不是LuaInterface)
当您不再需要函数时,请记住释放您的LuaFunction调用Dispose。
https://stackoverflow.com/questions/20015984
复制相似问题