uLua使用总结(二)

来源:互联网 发布:上海开放大学网络教育 编辑:程序博客网 时间:2024/06/11 04:53

uLua使用总结

1. LuaState:

LuaInterface中的Lua进行了封装。

相当于于Lua的解析器

Lua使用一样,在使用之前需要创建一个对象。

从而通过这个lua对象去执行lua的代码。

如下:

 

LuaState调用lua是使用的反射技术,它是把要在lua中使用的C#类通过反射做到

可以在lua中调用。

所以在Lua中使用C#的时候需要做一些导入程序集和导入类的操作。

如下:

 

2. LuaScriptMgr:

是对LuaState的再一次封装。

它对一些东西进行了处理,使用LuaScriptMgr处理lua会更加的方便。

使用之前也需要创建一个该对象,并且调用lua.Start()做一些初始化的操作。

包含三个重要函数:

DoFile:加载lua文件到lua虚拟机。

DoString:加载lua代码进入lua虚拟机。

CallLuaFunction:调用lua的函数。

LuaScriptMgr调用lua是使用的非反射技术,它把反射给去掉了,

使用非反射调用lua运行会更快。

怎么去掉的呢?

是通过Wrap包装文件把在lua中要使用的C#类预先注册到lua虚拟机中,

然后通过这种方式也可以在lua中进行对C#的方法的一些调用。

下面是一个使用LuaScriptMgr例子:

 

 

3. C#使用string代表lua脚本的话用@符号开头,避免字符出错

4. LuaFunction func= GetLuaFuction(“Lua中的方法名”)得到lua中的方法对象

5. func.Call(传值)调用该方法,并且可以往里面传值

6. 因为lua中是支持多返回值的,所以我们可以定义一个object[]数组用来接收该方法的返回值。比如:object[] objs=func.Call(123)

原创粉丝点击