根据官网教程使用这个方法加载远程服务器上的子游戏,可以成功加载并进入子游
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文件夹
