目录
一、配置XLua开发环境
C#下Lua编程支持
xLua为Unity、 .Net、 Mono等C#环境增加Lua脚本编程的能力,借助xLua,这些Lua代码可以方便的和C#相互调用。
xLua的突破
xLua在功能、性能、易用性都有不少突破,这几方面分别最具代表性的是:
- 可以运行时把C#实现(方法,操作符,属性,事件等等)替换成lua实现;
- 出色的GC优化,自定义struct,枚举在Lua和C#间传递无C# gc alloc;
- 编辑器下无需生成代码,开发更轻量;
更详细的特性、平台支持介绍请看这里。
XLua安装
官方下载地址:自己复制粘贴一下吧
https://github.com/Tencent/xLua
(可以下载我的工程,加了一些备注,Github源码下载)
打开zip包,你会看到一个Assets目录,这目录就对应Unity工程的Assets目录,保持这目录结构放到你的Unity工程。
如果希望安装到其它目录,请看FAQ相关介绍。
安装EmmyLua插件
二、文档
- 常见问题解答:常见问题都总结在这里,初使用大多数问题都可以在这里找到答案。
- (必看)XLua教程:Lua文件加载、C#访问Lua、Lua调用C#。
- (必看)XLua的配置:介绍如何配置xLua。
- 热补丁操作指南:介绍如何使用热补丁特性。
- XLua增加删除第三方lua库:如何增删第三方lua扩展库。
- XLua API文档:C# API、Lua API、类型映射。
- 生成引擎二次开发指南:介绍如何做生成引擎的二次开发。
- XLua性能分析工具:XLua内置两个小工具进行性能方面问题的分析:一个是Lua函数,Lua调用C#函数的时长(不一定等同于CPU耗时,比如协程yield出去那段时间也会被算入调用时间)分析工具;一个是内存泄漏定位工具。
- XLua复杂值类型(struct)gc优化指南
- 通用字节码
三、热补丁
- 侵入性小,老项目原有代码不做任何调整就可使用。
- 运行时影响小,不打补丁基本和原有程序一样。
- 出问题了可以用Lua来打补丁,这时才会走到lua代码逻辑;
这里是使用指南。
四、示例教程
- 01_Helloworld: 快速入门的例子。
- 02_U3DScripting: 展示怎么用lua来写MonoBehaviour。
- 03_UIEvent: 展示怎么用lua来写UI逻辑。
- 04_LuaObjectOrented: 展示lua面向对象和C#的配合。
- 05_NoGc: 展示怎么去避免值类型的GC。
- 06_Coroutine: 展示lua协程怎么和Unity协程相配合。
- 07_AsyncTest: 展示怎么用lua协程来把异步逻辑同步化。
- 08_Hotfix: 热补丁的示例(需要开启热补丁特性,如何开启请看指南)。
- 09_GenericMethod: 泛化函数支持的演示。
- 10_SignatureLoader: 展示如何读取经数字签名的lua脚本,参见数字签名的文档介绍。
- 11_RawObject: 当C#参数是object时,如何把一个lua number指定以boxing后的int传递过去。
- 12_ReImplementInLua: 展示如何将复杂值类型改为lua实现。
- 13_BuildFromCLI:使用命令行打包