把bundle包压缩成zip下载到本地解压需要解决以下几个问题(在勾选MD5的情况下)
- 游戏运行之前会有一段时间的黑屏,此时游戏在下载zip包,黑屏时长取决于你的资源包大小
- 版本更新后下载新的资源包会解压失败,具体原因不清楚,猜测是缓存的原因导致
首先来看一下构建后的目录结构

通过阅读代码得知引擎是通过settings.json的hasResourcesBundle字段来自动加载远程资源包的,所以只要修改hasResourcesBundle值为false就能自己控制什么时候下载远程包。这个时候可以通过新建一个loading场景放在主包里面,其他资源场景统统丢进resuorces里面来实现下载进度条,解决了引擎自动下载导致的黑屏问题
当更新版本的时候我们要删除旧的资源,此时我们并不知道哪些资源该删除哪些不该删除,所以要写入当前构建后的文件信息,也就是下图红框部分
通过阅读application.js 可以在cc.macro里自定义参数
上述修改操作可以通过插件完成 代码如下
在微信小游戏里之前下载过的资源可以通过assetManager.cacheManager.cachedFiles获取
假设你的远程资源服务器地址是 http://localhsot:3000
那么zip的缓存路径就是 http://localhsot:3000/remote/resources/res.xxx.zip
清除缓存的代码如下
demo
wechat_bundle_zip.zip (396.9 KB)





参考您的文章搞定了,非常感谢!