Unity3D资源热更新(一)

弄了个简单却很完整的资源热更新模板:感觉网上针对5.0以后打包的东西太少了,很多人找了半天还是5.0以前的,要么就是绕来绕去不绕死你的秀技巧的框架。
现在Vinici基于Unity5.4弄了一个例子供参考,代码的加载模块没有做,这块感觉变数太大,还是自己根据项目需求来做比较好,道理也是一样的,用lua的话就加载lua文本,至于后面你要怎么用,看自己了,那些热更新框架为什么大?就是把很多代码更新要遇到的情况一股脑列出来了,要是我写全了估计也没人有心思看下去,今晚开始写下来,也方便自己以后记忆。

总体流程:

1、将要打包的资源放在一个目录下,我图方便就放在了Resources下,为什么这么做呢?因为开发时你不可能一直LoadAB包吧,所以我留了两个接口,开发平台是用Resources加载,发布时用Load AB包的方式加载。

打包时根据每个文件起对应的AB名字,记录下MD5值和大小(以后更新时可直接获取要更新的包的大小,少一次计算大小的操作何乐不为!?)我是用逗号分隔符,保存为CSV文件(微软的做东西确实好),好处是便于看也便于改啊!

2、启动游戏前,刷新所有文件夹,一样的规则生成MD5和大小,与服务器上的版本文件对比,当有比较不同时,记录下文件名,比较完成后,下载对应替换服务器文件,跳转场景。
3、对于运行时加载服务器AB资源,本打算开线程监听加载请求在去下载的,但是unity很坑爹,这个是后话,换成自带的IEnumerator 。

思路是:有一个文件加载请求队列,监听这个队列,当队列中有下载的文件时请求时,去下载或加载,加载完成移出队列,加载下一个,直到加载完,目前由于用的5.0以后AB资源是分开的,加载请求的依赖关系难以判断是是否重复,所以只做了单线程加载,原因是Unity的同一个AB资源在内存里只能有一个!!

4、然后实例化出后,卸载掉内存里的AB包资源。

整体思路如上,其中还有很多细节和重点,源码的话我后期会贴出来

今晚码这么多字警告自己再也不接操蛋的外包~~

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

VniciGino

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

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

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

打赏作者

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

抵扣说明:

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

余额充值