在热更新场景中 设置资源的搜索路径,目的是想要热更新场景页面也更新。
在updateScene::onEnter中调用 checkHotUpdate()方法。
第一次启动app更新会成功,第二次启动app会把之前的更新删掉。第三次又会成功。。。
因为设置搜索路径了,导致AssetsManagerEx::create()方法 传的第一个参数 文件读取的是缓存目录的文件。
上面的代码逻辑就是导致 第二次启动app 会删除之前的更新的原因。其实版本并没有更新。
我在项目中,解决这个问题的方案是 在创建热更新对象之前重置了一下搜索路径,就解决了第二次失败的原因,第四次失败的原因。。。
还有一个解决方案:
就是在创建界面之前,先把热更新对象创建好, 然后在UpdateScene::onEnter()方法中调用
_am->update();
总之,使用起来感觉怪怪的。 如果不设置搜索路径,热更新界面就得不到更新,只能app版本升级的替换掉背景资源或者进度条资源。
还有一个建议 热更新里 删掉目录 在创建目录 太简单粗暴了。 希望除了这种方法,还可以自定义。
类似版本号比较的处理。可以自己设置。
我的项目中一个app有多个cocos2dx的游戏,所以存在很多版本
处理这样的 当大厅缓存目录下版本文件不对的时候 和他同一级的所有游戏都会被删除。
这种做法, 处理大部分app当然没什么问题,如果处理集合式app的时候 就有点粗暴了。