我先说一下需求:项目分为大厅+子游戏,在大厅,可以选择加载那些游戏。 然后我想后续进行更新的时候,只更新大厅和已经选择加载的游戏部分。剩下未加载的暂不需要更新。 请问我该怎么做? 生成多个manifest文件么? 类似于动态加载 这个贴的问题。
我也正在解决这个问题,有一些初步的想法仅供参考。
根据官方例程的热更新是这样的:本地版本与服务器版本对比manifest文件,之后下载差异的部分。
但如果类似于游戏大厅这样的更新子模块,感觉并不能直接使用,不能给每个子模块都打一个版本出来。
我的理解是:在更新子模块上可以抛弃版本的概念,根据热更新文件来看,每次启动时会根据jsb.sqlite中HotUpdateSearchPaths存储的路径搜索加载资源,而资源的组织形式按照res和src中的组织方式存放就可以。可以将每个游戏子模块的资源分离出来,单独存放于各个资源包中,点击后下载对应的资源包到指定位置即可。比较麻烦的是setttings.js和Project.dev.js文件,需要在其中添加该游戏新增的js代码,而不能直接覆盖。
我现在也有这方面的需求,有解决方案的朋友么?或者已经实现的朋友?