2.4使用Asset Bundle做大厅+子游戏,子游戏不更新

根据官网教程使用这个方法加载远程服务器上的子游戏,可以成功加载并进入子游
cc.assetManager.loadBundle(‘https://othergame.com/remote/01_graphics’, function (err, bundle) {
if (err) {
return console.error(err);
}
console.log(‘load bundle successfully.’);
});
但是,我想更新子游戏,打包时已经勾选了md5 cache这个选项,把子游戏放到服务器上,再次运行游戏,发现自由游戏并没有换成最新的,还是上次的子游戏,请教一下做过的大佬们,这是什么情况

在加载的时候有一个可选参数选项,里边有一个版本version的字段,在那里面可以添加md5值。
https://docs.cocos.com/creator/manual/zh/scripting/asset-bundle.html#asset-bundle-的版本

加了版本号也不会更新,android,ios都试了

这样做也没有把本地缓存目录中下载的资源删除,重新加载的时候并没有从远程下载,而是直接用的本地资源,不知道是不是设计如此
var bundle = cc.assetManager.getBundle(bundle);
bundle.releaseAll();
cc.assetManager.removeBundle(bundle);

有没有详细的文档介绍一下

删除本地缓存用的是另一个,
cc.assetManager.cacheManager
因为我是开发web,不是原生端的你可以试试用这个方法
https://docs.cocos.com/creator/manual/zh/asset-manager/cache-manager.html

好的,多谢

确实有这个问题,引擎组可以看看。

上面说的很明显了

启动时动态获取版本信息以实现热更新

手动设置,是 也可以 指定一个特定版本

这里我发现个bug,我在mac是正常的,第一次下载完后就缓存了,下次启动不会重新去远程请求,但我使用ios模拟器调试发现,第二次启动,下载的文件就找不到了

暂时没遇到过这样的问题

我遇到相同的问题
使用 xCode 第一次启动时 下载 bundle 没有问题
( Data/Application/00000000-CCCC-4444-9999-BBBBBBBBBBBB/Documents/gamecaches/…)
在不删除 模拟器的 app 的情况下
第二次启动时 , Documents/gamecaches 会 搬到 下一次启动的 Documents 底下
( Data/Application/11111111-DDDD-5555-6666-AAAAAAAAAAAA/Documents/gamecaches/…)

load bundle 会得到
*** not found, possible missing file. ,
*** buffer is empty!
[WARN]: Read json failed: JSON Parse error: Unexpected EOF

经过排除发现
cc.assetManager.loadBundle(url, (err: Error, bundle: cc.AssetManager.Bundle) => {})
有成功取得 bundle

但是 bundle.load(paths], type, onComplete): void;
会去上次的路径查找
( Data/Application/00000000-CCCC-4444-9999-BBBBBBBBBBBB/Documents/gamecaches/…)
而且 onComplete 不会回传 Error

使用 cc.assetManager.cacheManager.clearCache() 可以正常下载
但每次重新下载也不是个办法…

我现在是将一个游戏相关的资源放在一个bundle目录下,但这样一个游戏改动了,打包就会全打一遍,游戏多的话,肯定会慢很多,有没有办法只打包指定的bundle文件夹