大厅子游戏实现指引,creator2.0以上

    this.file_manifest = ''
    let temp = jsb.fileUtils.getWritablePath() + this.updir + '/' + this.file_project
    if(jsb.fileUtils.isFileExist(temp))
        this.file_manifest = jsb.fileUtils.getStringFromFile(temp)
    else if(mod == '' || mod == 'hall') //大厅或单包,请确认你的包体内包含资源列表配置文件
        this.file_manifest = jsb.fileUtils.getStringFromFile(this.file_project)

代码里有判断的,如果是hall模块,首先去 更新路径 查找配置文件,更新路径中配置文件不存在时,才会去 app/assets下面读取,首次热更hall也是正常的,并不会导致下载所有的资源。

mark一下

楼主你好,。我现在执行bat文件报asset_module.json这个文件找不到,。我找遍了我的工程也没找到,请您指点下,我的QQ12170444,希望QQ沟通

这个是构建后才会生成的,在相应的构建模板目录下,你可以看 package/assetlist/main.js文件,生成代码在这里面

多谢大佬的回复,我这边仔细看了代码,目前资源文件build后成2种文件,一种是json格式的,一种是png格式的,目前png格式的uuid和文件名一样的,但是json格式的和uuid没有关系,现在使用脚本分离就只能把图片资源资源分离出来,音频,scene,js,font这些资源没有办法区别,请教下这个怎么处理

mark一下

build后是能拿到完整的build资源配置的,你可以通过依赖关系去处理。
比如prefab上挂载了音频,这样就可以拿到prefab的依赖资源音频的uuid了。
当然有的资源是不明确的,比如一个场景资源,需要你自己定义一份配置,声明下场景是A类资源,然后就能确定这个场景依赖的资源都属于A。

大佬的意思是我查里面的uuid,如果和我的关联上了则直接放到对于的模块里面吗?

兄弟 你的demo我跑起来了。有些疑惑的地方:

  1. project.manifest version.manifest这个有什么用? 大厅部分的资源更新管理 直接用hall_project.manifest hall_version.manifest这个不就好了吗?

2.执行完脚本后 remote-assets-sub res目录下没有import文件夹 这个正常吗? 用这个目录下的资源去替换jsb-link下面的相应资源 会导致加载main场景 报错。应该是丢失了import下面的资源。

望指教。

  1. project/version.manifest文件对分包方案暂时无用,是一份包含所有资源的配置。
  2. 没有import文件夹感觉不太正常,你需要看下对应模块的配置文件xx_project.manifest中是否用到了import里的资源。
    需要你自己排查下是否没有正确的拷贝资源到 remote-assets-sub目录中。

mrak

####有个问题
按照楼主的思路,假如有很多小游戏,10多个样子,而小游戏经常修改,大厅和小游戏的代码是在一起的,岂不是每次进游戏都不会不停的更新。

没有太明白你的问题。
所有代码都是在一起的,所以代码的更改需要考虑到是否会对其他模块造成影响,这是这个方案的一个弊端。
至于是否会造成频繁更新是跟业务逻辑相关的,假设你改了其中一个小游戏代码(理论上这些代码不应该对其他小游戏造成影响),那么就不用更新其他小游戏。

我想问下大佬 更新失败后

finish没有用,是不是漏写了什么代码, 还有为什么失败后 还要把缓存文件修改

finish是判断更新 成功 还是 失败的,是否处理可由自己决定。
demo里我没有处理失败,都当成功情况处理了(从我们自己以往的运营项目看,会出现更新失败的情况,但实际上是更新成功了)

我这边有个问题
正在下载中, 这时切换场景再回来下载 导致下载不了
我想下载失败后处理一下 清理缓存 但是不知道该怎么做

这个是有什么作用的

下载过程中有些资源可能下载失败,这个是尝试重新下载失败的资源。
失败后你可以重头开始走更新的流程

我这边已经跑通了 我想大厅模块包含代码更新 然后其他子游戏只进行资源更新 应该怎么处理

这个恐怕没办法,因为creator现在不支持分包,同一个项目里的代码都会合并成一个文件。
现阶段做的只能是通过逻辑层,减少子游戏代码之间的耦合,尽量做到代码的更新不会影响到其他模块的逻辑。

大佬有没有遇到,热更新成功,执行 cc.game.restart 后,部分资源不是最新的