实现过 2.0版本之前的子游戏热更新的同学们可以参考一下:
子游戏 在原来的实现的基础上 换成2.0.7的main.js 和 自己写的 dating.js 基本上就好了,具体的实现可以下载下面的demo
下面说一下升级 2.07 踩的一些坑
之前的这种写法
1 if (cc && cc.sys.isNative) {
let hotUpdateSearchPaths = cc.sys.localStorage.getItem(‘HotUpdateSearchPaths’);
if (hotUpdateSearchPaths) {
jsb.fileUtils.setSearchPaths(JSON.parse(hotUpdateSearchPaths));
}
}
换成以下写法
if (jsb) {
var hotUpdateSearchPaths = localStorage.getItem(‘HotUpdateSearchPaths’);
if (hotUpdateSearchPaths) {
jsb.fileUtils.setSearchPaths(JSON.parse(hotUpdateSearchPaths));
}
}
2
require(storagePath + “/src/main.js”);
要改为
window.require(storagePath + “/src/main.js”);
3 子游戏引用大厅资源(prefab , SpriteFrame)需要预加载
CCLoaderHelper.getRes( value , cc.Prefab , function (err, prefab) {
}
cc.loader.loadRes(name, cc.SpriteFrame, (err, spriteFrame) => {
if (err) {
return cc.error(err.message || err);
}
});
4 如果当你预加载过大厅的prefab 后,即使能在子游戏里引用大厅的prefab ,但发现报错,问题很可能是你prefab 里有使用skeleton 动画,此时动画也需要预加载,或者尽量不去用动画
5合并 大厅和子游戏的 assets 时一定要把对应的 assetTypes 重组一下保证新的 assets里的资源 对应的 assetTypes 类型
是对的
没有实现过2.0之前的子游戏更新的同学们,可以去看一下2.0之前实现子游戏更新的帖子,我这边整理了一份最新的子游戏更新的方案。相互学习一下UpdateDemo.zip (11.8 KB)