uLua使用总结

1. LuaState:

LuaInterface中的Lua进行了封装。

相当于于Lua的解析器

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

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

如下:

 uLua使用总结(二)

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

可以在lua中调用。

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

如下:

 uLua使用总结(二)

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例子:

 uLua使用总结(二)

 

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

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

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

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

相关文章:

  • 2021-12-21
  • 2021-02-13
  • 2021-11-18
  • 2021-04-01
  • 2021-10-21
  • 2021-08-13
  • 2021-08-11
  • 2021-06-27
猜你喜欢
  • 2021-12-14
  • 2021-12-03
  • 2022-12-23
  • 2022-02-16
  • 2021-07-14
  • 2021-05-02
  • 2022-01-22
相关资源
相似解决方案