如何预下载bundle到本地

  • Creator 版本:3.8.3

  • 目标平台: iOS / Android / 模拟器
    看文档说loadBundle可以下载远程bundle到本地。然而我测试结果是bundle内资源要运行active一次后才不会从远端再次下载。

代码如下:
第一次启动app 运行:
assetManager.loadBundle(‘https://www.xxxx.com/update’,{version:“xxxx”}, (err, bundle) => {})
第二次启动app 运行: node.active = false
assetManager.loadBundle(‘https://www.xxxx.com/update’,{version:“xxxx”}, (err, bundle) => {

        bundle.load('update',Prefab, (err, asset) => {

            let node = instantiate(asset)

            node.active = false

            this.node.addChild(node)

        });

   })

第三次启动app 运行:node.active = true
assetManager.loadBundle(‘https://www.xxxx.com/update’,{version:“xxxx”}, (err, bundle) => {
bundle.load(‘update’,Prefab, (err, asset) => {
let node = instantiate(asset)

            node.active = ture

            this.node.addChild(node)

        });

   })

第三次之后资源才在本地保存。 我需要第一次就下载资源,之后在某次使用的时候不再下载,特来求教。

看官方文档:有下载,解析,加载。似乎远端下载的资源没有解析,必须解析一次后方可在第二次直接使用

https://forum.cocos.org/t/topic/113061 参考文章
loadbundle只是下载了配置文件,这能理解,然而loadres,并且使用了,只是没有active它依然没下载,这有点不能理解

bundle.preloadDir("",null,null,() => {});
会预下载bundle的内容,但有bug不能下载自动合并的图集png文件。下载的内容不进parse,仅下载文件。
你仔细看看文档里面的preload系列函数呢?

感谢老哥提供的信息。 自动图集不勾选压缩可以下载成功。估计是压缩文件有bug。
也没有zip保存到本地,把zip处理整理好了这一整套就完备了

mark :crazy_face: