注意:本文尚未施工完成。

最近了解到很多项目组使用的技术栈是 Unity + ToLua(而非之前所了解的 xLua),因此想研究学习一下有关于 ToLua 框架的知识。类似于 xLua,我想从“C# 调用 Lua”、“Lua 调用 C#”两方面展开学习,并探讨一下 ToLua 跨语言调用背后的原理。

什么是ToLua

ToLua 是 Unity 静态绑定 Lua 的一个解决方案,它通过在 C# 中集成 Lua 虚拟环境,可以自动生成用于在 Lua 中访问 Unity 的绑定(bind)代码,并把 C# 中的常量变量函数属性以及枚举暴露给 Lua 使用。ToLua 通过 C/C++ 层优化减少了调用开销,运行效率比使用反射的 uLua、xLua 更高(尤其是在安卓平台上)。

uLua

在Unity中使用

C#调用Lua

  • toLua解析器
  • toLua解析器不同文件加载方式
  • toLua解析器管理器
  • 全局变量获取
  • 全局函数获取
  • 访问Lua中table表现List和Dictionary
  • 访问Lua中table
  • 使用toLua提供的协程

Lua调用C#

  • 枚举
  • 数组、List和Dictionary
  • 函数(拓展方法)
  • 函数(ref和out)
  • 函数(重载)
  • 委托和事件
  • 协程