Unity热更ILRuntime转HybirdCLR
前言
Unity热更方式有很多,ToLua、XLua、ILRuntime等等这些想必不用我多说,我们项目目前也是使用的ILRuntime进行热更新的,但是使用起来限制比较多,很多计算只能写到非热更层下。相较最近比较火热的HybirdCLR(以前叫做华佗)热更方式来说,HybirdCLR效率更高,使用起来更方便。所以领导决定将ILRuntime改为HybirdCLR。
一、了解HybirdCLR
在“谢邀"网站上有很多关于HybirdCLR的文章,我也是通过这些文章进行的了解。或者直接上官网进行学习。
二、删除项目中所有的ILRuntime
既然都选择不用ILRuntime,就没啥好留恋的,赶紧删掉。直接全局搜索ILRuntime宏定义的地方,全部删除,再把ILRuntime的文件夹全部删掉就好了。
三、安装HybirdCLR
1、我选择的是通过直接导入的方式进行安装的。
当然你也可以通过URL进行下载包。
下载好包后,就可以正式的进行安装了。
这里注意,要选择你Unity版本的版本号。安装的时候需要你有git的运行环境,git环境变量配置可以参考这个博客。
3、安装完成后需要在设置界面进行相应的配置
4、生成LinkXML
生成好的XML会在下图所示的路径中
5、第一次打包APK
第一次打包只是为了生成AOT裁剪需要
6、生成AOT的dll文件
生成后的dll文件会在下图所示文件夹中
7、生成并修改热更dll和泛型补充dll为.bytes文件到工程目录中
其中生成的热更文件会生成到下图目录中
复制到工程目录下的.bytes文件位置如下图所示
其中热更新文件按照项目中的读取方式,将.pdb文件同样转换为.bytes文件放入到工程路径中,Hotfix.dll以及Hotfix.pdb文件为编辑器下读取的热更dll,可以不选择打包成AB带出。剩下的dll文件为AOT补充dll,根据打包出来的报错信息进行扩展补充,将需要补充AOT的dll写到下图所示的脚本中。
8、正式打包APK
完成上述操作并且无报错的情况下可以进行正式的APK打包。若出现各种形式的报错信息,可以参考focus-creative-games.github.io 中的报错信息处理方式进行处理。
9、热更操作
如果更改了热更脚本,则可以只进行第七步操作进行热更dll导出,然后打包ab即可。
如果更改了非热更脚本,则只需要重新打包APK即可。
理论上来说第六步操作进行一次即可。