creator 2.0.7 子游戏加大厅实现多个子游戏热更新,已经上线没有问题

实现过 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)

24赞

赞,战略性 Mark!

mark,学习

谢谢分享 正在学习

能不能分享一个完整的demo啊,非常感谢!

可以的,我整理一下发

UpdateDemo.zip (11.8 KB)

1赞

2.0之前实现子游戏更新的帖子 能给个链接吗

你这边现在需要2.0之前的 子游戏更新方案?

以前没用过子游戏的热更新,所以要先了解2.0之前的才能知道2.0之后的怎么改

楼主可以提供一个完整的demo吗

这个需要从项目里摘出来,我抽时间搞一下,然后附在帖子上

其实,这个和2.0之前的差不多,只是main.js 不一样,如果你的项目是2.0之后的可以直接用这个试试,我会抽时间整理一份完整的demo

非常感谢大大

感谢,接下来正需要

楼主好人啊,一定要整理个完整的demo方便大家学习学习

我自己写的热更新子游戏,遇到Android热更新没有问题,但是ios上没有作用,必须重启js,请问您有这种情况吗?

非常感谢 mark

能详细一点吗,大厅的话是需要重启的,子游戏的话不需要的

好的不错