unity 热更方案对比

现在一般使用的方案有:tolua、xlua、ILRuntime

对比:

tolua 方案成熟,稳定第三方库支持

xlua 之前是为了热更修复线上bug的,腾讯发起的,现在也有部分从一开始就用xlua开发

ILRuntime 最近几年出的,一种全部C#语言开发,掌趣公司发起,现在去掉反射使用桥接类性能有很大提升。大家关注度比较高

 

lua

优点:稳定、使用的项目多、可行性多

缺点:静态语言,重构麻烦,查错难,学习成本高,维护成本高

ILruntime

优点:调用C#快,学习成本低

缺点:环境不健全,密集型运算相对lua差,比如for。

 

 1,使用的项目比较少,未预见的坑比较多。 2,性能比较差,毕竟lua 有Jit, 在支持Jit的设备上是接近c的性能,大部分的性能损耗在接口交互上,而Ilruntime 是自己实现了一套解释器,是C#编写的,原生性能较差。 因此我打算做一个性能测试,看看真实的情况是什么

第一步:通过对C#的类与函数设置Hotfix标签。来标识需要支持热更的类和函数。第二步:生成函数连接器来连接LUA脚本与C#函数。第三步:在C#脚本编译结束后,使用Mono提供的一套C#的API函数,对已经编译过的.Net体系生成的DLL文件进行修改。第四步,通过LUA脚本修改C#带有标签的类中静态变量,把代码的执行路径修改到LUA脚本中。通过这套方案可以实现对已经标识的C#代码进行动态更新。

 

 

xlua

https://zhuanlan.zhihu.com/p/68907610

tolua原理解析

posted @ 2020-01-11 15:00  酉乐  阅读(970)  评论(0编辑  收藏  举报