现在一些热更的方案有LuaJit、uLua、sLua、xLua、L#(C# Light)等
1、LuaJit和其他Lua解释器区别过大,针对大多数unity的程序员来讲,并不是特别适合。
2、uLua:Lua是当前速度最快的Lua,但它所存在的缺陷就是uLua的分支版本多,造成了不统一的现象。
ulua最早是一个叫LuaInterface开源库的Unity移植,在2015年初换成cs2lua,又在2016年初换成tolua c#,只所以说“换”,是因为这从API角度看可认为三个不同的产品,它们间很难升级,而且是每换一次,之前的版本就彻底不维护了,这给项目带来很大的困扰。
ulua的第一个版本纯反射,并不实用,已经淡出市场,现存应用用后两个版本居多。cstolua版本接口比较混乱:它保留了第一版ulua接口之余,搞了一套新接口,这两套接口之间并不正交,也不是后者完全替代前者,让人有点无所适从。到了tolua c#版本,这问题解决了,但同时也把反射特性(老接口)给废了。不过总体来说,ulua在向好的方向走。
3、sLua:代码质量比cstolua好很多(很多人当时选slua的理由),部分支持反射。性能按我们的测试用例整体比tolua c#略低,另外代码质量对比tolua c#已经形成不了明显优势
4、xLua:作者和云风撕了一场大逼,性能上可能并不如uLua,也可能会让大家产生撞大运编程的即视感,不过由企鹅主导维护,并且只有一个版本,对开发者还算比较友好。
5、C#light 个人觉得主要有两个不足:
按其实现原理来说,性能不会靠谱,到不了手机上实用的地步;
由于不完整支持C#,本质上只是另一种叫C#light的语言(C# like?名字倒很贴切),这两者代码配合起来也复杂,甚至它能做到比C#和lua配合更复杂些
事实也证明了,C# light基本淡出市场,可以忽略不计了
6、LSharp是C# light作者的后续作品,可惜后面没了下文(不维护了)。
xLua的优势:http://www.gad.qq.com/article/detail/24967
GitHub地址:https://github.com/Tencent/xLua
tolua:https://github.com/topameng/tolua
slua:https://github.com/pangweiwei/slua
ILRuntime:https://github.com/Ourpalm/ILRuntime