Unity 接入HybridCLR的点点滴滴,亲测三平台(PC、Android、WebGL)妥妥的。-问题分享

本文分享了作者在Unity项目中接入HybridCLR实现热更新的过程及遇到的问题解决方案,覆盖PC、Android和WebGL平台,尤其针对WebGL的限制给出了具体建议。

        

一入热更深似海啊,没有热更是真恼火啊,干啥啥不方便,动不动就得重新发包;说实在的,也是工作之余研究这个,在原有框架基础上接入这个热更,既要保持原有功能,还要支持热更,实实在在、断断续续搞了这么久,终于是接入并测通了,这一路是坎坎坷坷,下面把走过的弯弯绕绕记录下,希望对后来想接入的小伙伴有帮助吧。

        其实之前早就有动热更新的心,无奈现在没做游戏了,项目这块基本都是定制开发,所以这块一直搁置,不过之前有考虑过lua和xlua也看过ILRuntime,但是一直耿耿于怀,要用另外一种语言去搞,而且咱又是一直干C#的,而且这几个实现机制都是需要一个独立的vm,编译完在解释一套,而且有的还不能直接使用,需要特殊处理,看着看着就没心思搞了;这时看到了HybridCLR,说实话,一开始看到的是huatuo,这俩其实到后来了解到是一个东西,看了几天,发现这个的实现机制从根本上解决了独立vm的问题,具体的HybridCLR官网说的更清楚,使用了AOT + Interpreter混合运行方式,HybridCLR使得il2cpp变成一个全功能的runtime,原生(即通过System.Reflection.Assembly.Load)支持动态加载dll,这个就是亮点,在实现热更的路上,它占了绝对的分量。

        看到这里的,默认你已经在接入HybridCLR的路上了,而且已经接入,遇到问题了,如果是还没接入的,可以查看Unity 热更新 之 huatuo(HybridCLR) 和 Unity 热更新 HybridCLR 对接到项目中 了解和接入。

        这里使用的Unity版本是 2021.3.6f1 , HybridCLR是 v2.3.0 , il2cpp_plus版本是v2021-2.2.0一切准备就绪后,开始坎坷之路吧,Lz这里主要测试的平台有PC、Android、WebGL,感觉最明显的就是WebGL限制是真多,所以在这里爬坑也是绞尽脑汁了。

        所有常见的问题HybridCLR常见错误(这里是链接,可以跳过去看)里其实也都有,只是有的指出了方向,但具体怎么解决人家也没细细说明,必经错误千奇百怪,遇到了至少人家有个指引方向,剩下的就得靠自己慢慢爬了。

        别的不多说了,进入主题。

        问题:项目已经进入热更新,可以使用,但是想进一步使用热更新,热更项目中原有的dll。

        正常接入后,打包出来没问题,然后有要求,比如项目之前就有已经引用的dll或则框架要求,把已经统一的功能封装出去,最终形成dll在项目中引用使用,不管什么原因,你想实现已经引用的外部dll的热更新。

        在HybridCLR中,是有这块的功能的,

 这里需要配置外部搜索dll路径和需要热更dll的名称,注意:这里的设置一定是同时设置,这样热更新才能找到需要热更的dll在哪里,而且外部搜索dll路径是以Assets为父级(根目录)去找的,这里Lz直接放在了项目内,如果你放在项目外,就要填写项目外地址了。</

评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GarFe-Liu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值