首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >luainterface问题

luainterface问题
EN

Stack Overflow用户
提问于 2013-11-16 07:29:24
回答 1查看 705关注 0票数 0

我在C# luainterface库中遇到了一些问题:

1.因此,我加载一个脚本并提取它的函数,如下所示:

代码语言:javascript
复制
LuaFunction function = lua.GetFunction("Update"); 

但是,如果我加载两个包含相同名称的函数的不同脚本,该怎么办?如何从script1和script2中提取两个名称相同的不同函数?

2.如果我将函数加载到内存中,是否可以处理一个特定的函数,而不是所有的函数?

3.当我使用Lua.DoFile方法时,我希望从文件中执行特定的函数。有什么办法吗?

编辑

2.我发现了,我可以这样做

代码语言:javascript
复制
string f = @"
        function hh()
          end";

        var result = lua.DoString(f)[0] as LuaFunction;

但出于某种原因,我得到了空异常。知道为什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-16 16:00:18

DoString将返回脚本返回的内容。

代码语言:javascript
复制
lua.DoString ("return 10+10")[0]; // <-- will return Double. 20

如果希望将Lua函数作为LuaFunction对象,则需要返回函数,或者更好的方法是使用[]运算符来获得hh的全局值。

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20015984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档