HybridCLR简介
HybridCLR是 Code Philosophy(代码哲学) 公司的代表作品,我们希望通过我们的聪明才智深刻地改变整个行业,帮助游戏团队制作出更优秀的游戏。
HybridCLR是一个特性完整、零成本、高性能、低内存的近乎完美的Unity全平台原生c#热更方案。
HybridCLR扩充了il2cpp的代码,使它由纯AOT runtime变成AOT+Interpreter
混合runtime,进而原生支持动态加载assembly,使得基于il2cpp backend打包的游戏不仅能在Android平台,也能在IOS、Consoles等限制了JIT的平台上高效地以AOT+interpreter混合模式执行,从底层彻底支持了热更新。
HybridCLR不仅支持传统的全解释执行模式,还开创性地实现了 Differential Hybrid Execution(DHE) 差分混合执行技术。即可以对AOT dll任意增删改,会智能地让变化或者新增的类和函数以interpreter模式运行,但未改动的类和函数以AOT方式运行,让热更新的游戏逻辑的运行性能基本达到原生AOT的水平。
欢迎拥抱现代原生C#热更新技术 !!!
兼容性
- 支持2019.4.x、2020.3.x、2021.3.x全系列LTS版本。2022.2.x版本也已支持,但未对外发布。
- 支持常见平台。已稳定支持 PC(Win32和Win64)、macOS(x86、x64、Arm64)、Android(armv7、armv8)、iOS(64bit)、WebGL、微信小程序平台,剩余平台有待测试。
- 测试过大量游戏常见库,未发现跟il2cpp原生兼容但使用HybridCLR后不兼容性的库。只要能在il2cpp backend下工作的库都可以在HybridCLR下正常工作。甚至那些与il2cpp因为AOT问题不兼容的库,现在因为HybridCLR对il2cpp的能力扩充,反而可以正常运行了。
最新官网网址:关于HybridCLR (focus-creative-games.github.io)
一:
导入之前确保电脑上存在git,如何没有可以去官网下载。
(下载后一直next即可) Git官网:Git - 安装 Git (git-scm.com)
先去导入HybridCLR main分支,可以用unity package addurl安装
main分支地址为 https://gitee.com/focus-creative-games/hybridclr_unity.git
不熟悉从url安装package的请看install from giturl。
二:
安装好url之后,如图上,先安装,如果未安装会显示未安装。
如图,从上往下,脚本后端选择il2cpp,就是dll转c++;选.NET4.X,.NET2.0太低了用不了;GC变量关闭,
关闭增量式GC(Use Incremental GC) 选项。因为目前不支持增量式GC。WebGL平台忽略此选项。
;打开不安全代码。
三:
此图上两个地方是放你要热更的dll,第一个直接可以选择,第二个写上你dll的名字即可,多个dll也是可以的,两者选其一。
图1
图2
如图1,你最后要打包成哪个平台就点哪个,比如我的就是要pc,就win64就可以。
如图2,这是AOT剪裁,剪掉一些多余的资源,提高性能,让他更加安全,这个可能会报错
这个就是我上面说的.NET版本太低。测试中,代码有一点变动,此上图1图2都要来一遍!
这是打pc包可能遇到的报错, 解决方案在官方文档,HybridCLR的报错多看官方文档,基本挺全的。