前言:
xLua是Unity3D下Lua编程解决方案,自2016年初推广以来,已经应用于十多款腾讯自研游戏,因其良好性能、易用性、扩展性而广受好评。现在,腾讯已经将xLua开源到GitHub。
2016年12月末,xLua刚刚实现新的突破:全平台支持用Lua修复C#代码bug。
目前Unity下的Lua热更新方案大多都是要求要热更新的部分一开始就要用Lua语言实现,不足之处在于:
1、接入成本高,有的项目已经用C#写完了,这时要接入需要把需要热更的地方用Lua重新实现;
2、即使一开始就接入了,也存在同时用两种语言开发难度较大的问题;
3、Lua性能不如C#;
xLua热补丁技术支持在运行时把一个C#实现(函数,操作符,属性,事件,或者整个类)替换成Lua实现,意味着你可以:
1、平时用C#开发;
2、运行也是C#,性能秒杀Lua;
3、有bug的地方下发个Lua脚本fix了,下次整体更新时可以把Lua的实现换回正确的C#实现,更新时甚至可以做到不重启游戏;
这个新特性iOS,Android,Window,Mac都测试通过了,目前在做一些易用性优化。
个人对XLua看法
- 简洁易用,容易上手
- 可扩展性高,添加自定义的CS模块或者第三方插件非常方便
- 大厂维护,可靠
- 特色:HotFix
关于这个HotFix是其他热更lua框架所不具备的,也是他最大的优势和特色之一,原理就是通过特性标记然后在IL逻辑层判断修改逻辑,使程序支持热更的lua逻辑代码而不是走之前的C#逻辑
XLua文档:
(必看)xlua教程:Assets/XLua/Doc/XLua教程.md · Gitee 极速下载/xlua - Gitee.com
(必看)xlua的配置:Assets/XLua/Doc/configure.md · Gitee 极速下载/xlua - Gitee.com
xlua的API:https://gitee.com/OcxnO/XLua/blob/master/Assets/XLua/Doc/XLua_API.md
热补丁操作指南:https://gitee.com/OcxnO/XLua/blob/master/Assets/XLua/Doc/hotfix.md
常见问题解答:https://gitee.com/OcxnO/XLua/blob/master/Assets/XLua/Doc/faq.md