由于项目调整需要使用大厅+子游戏模式,在大体了解了2.4.3版本的bundle后,摸索这有了一个大体思路但是不清楚该方法是否可靠,还请各位大佬们指点一下。
1.大厅和子游戏项目进行了分离
2.通过热更新方式把子游戏子包下载到用户SD卡上然后通过加载本地子包方式进行加载
3.不需要修改main.js里的东西
4.测试过程中发现点一次点击一个子游戏进入后在返回大厅在点击另外一个子游戏时会执行上一个子游的代码资源,大体原因为由于每个子游戏差别不是特别大所以会提前制作一个模板,这样就导致了uuid的重复,想通过修改项目uuid进行解决发现项目不同也无法判断是否冲突,然后请教大佬们,说通过手动卸载脚本,最后小玉米大佬的方法通过修改引擎把loadedScripts暴露出来并赋值为undefined,进行解决
5.看官方cc.js.unregisterClass就能卸载已经在引擎中注册的脚本,所有把项目中的所有工具类,使用export class 名称 {}导出的类全部替换为一个常驻节点然后挂载上脚本,最后在进行销毁,这个方法导致项目没有以前简单明了更方便阅读
文采有限就写了下大体,很多细节没写到,请各位大佬说下这个方案是否可行以及后期会出现什么问题,有没有更好的解决方案,项目已经测试过,是可以进行加载更新的