一、前言
在这个热更横行的年代,各种热更技术层出不穷(其实也就那几个),前有lua系列,后有ILRuntime,就在这双足鼎立的情况下,又冒出了一个叫华佗(HybridCLR)的毛头小子,原以为这只是个初生牛犊,就名字取得牛而已,但经过仔细研究与观看各路大神对它的评价之后,才发现这是真有点东西,甚至有人称它为革命性的技术,它通过扩展 Unity 的 IL2CPP 运行时,将其从纯 AOT 运行时改造为 “AOT + 解释器” 混合运行时,从而原生支持动态加载 C# 程序集。它几乎100%地支持所有 C# 特性(包括泛型、反射、async/await等),提供了近乎原生的性能和开发体验,彻底改变了 C# 热更的格局,这就是华佗(HybridCLR),一个横空出世的毛头小子!
二、安装与初始化
首先通过https://gitee.com/focus-creative-games/hybridclr_unity.git或https://github.com/focus-creative-games/hybridclr_unity.git在Unity安装HybridCLR
安装完成后就能看到菜单栏多了一个HybridCLR
的选项
在使用HybridCLR之前我们需要先对整个项目进行初始化,点击菜单栏HybridCLR->Installer,就会弹出下面这个弹窗,然后点击Install就会自动进行初始化了
初始化完成就能看到Console面板打印成功日志
初始化完成后我们也能在项目文件夹中看到自动为我们生成的目录文件,这是运行HybridCLR所需要的一些东西
三、使用
我们先创建一个HotUpdate目录,用来存放热更脚本,在这个目录下我们需要创建一个程序集
将这个程序集命名为HotUpdate,然后在ProjectSettings中配置下这个程序集
接着,我们就可以开始写我们的热更代码了,在刚才创建的HotUpdate热更目录下,创建一个测试脚本“HotTest”,随便写点啥
接着我们就在主工程目录下创建一个“LoadHot”脚本,用来加载和运行热更代码
将这个脚本挂载到场景上
点击运行,报错了!!!
原来是忘记改程序集的Name了,所以没找到这个程序集
将程序集名称修改为代码里写的那个
接着我们在点击运行,很完美滴打印了出来~
是不是很容易就掌握了,不过这只是在编辑器模式下,加载也比较方便,如果我们要打包的话,就需要Generate一下,
就这样子Generate一下你会发现有很多报错
正确的做法是我们先生成对应平台的dll文件
然后再Generate一下就成功了,然后我们就可以看到目录下多了这个目录
当我们要打包的时候,我们还需要加载热更的dll文件,不然也是会运行失败的,我们在上面的代码里写的是从StreamingAssets目录进行加载
所以需要将HybridCLRData->HotUpdateDlls下对应平台喜爱的HotUpdate.dll文件放到StreamingAssets目录下,这里记得复制过去后把后缀改成.bytes
至此,我们就可以打包运行了~
转载自CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/unicrom/article/details/151568011