关于searchpath跟子包热更的一些问题想问一下引擎组

现在我用的子包热更方式是这样的

1.检查是否有本地的manifest文件
1.1 有 检测是否是初次启动子游戏
1.2 没有 从远程下载子游戏压缩包本地解压到files/subgame


1.1.1 是初次启动 拷贝安卓assets目录下的子游戏到files/subgame 一个专门放子游戏的目录当中 ==>然后热更
1.1.2 不是初次启动 直接热更

一般来说,加载bundle两种方式

cc.assetManager.loadBundle(bundle名)                                加载本地bundle
cc.assetManager.loadBundle(data/data/包名/files/......)         加载安卓缓存文件下的bundle

整个过程当中,拷贝assets目录子游戏所有的资源到指定目录就是为了加载bundle的时候能获取到完整的资源,不过这一步我目前没其他办法,挺蠢的。




但是我在看官方源码的时候关于searchpath的理解就是,当需要加载的资源的时候,会以searchpath所设置的路径的优先级来查询,我们通常加载资源只是传了一个相对路径,加上searchpath存的绝对路径组合起来才能加载资源。

为什么要提到这一点,就是因为正常的不分包,整个游戏热更,热更只会创建1个本地的文件夹去储存有差异的文件,并不是把整个项目拷贝一份,然后再热更把差异资源下载到拷贝文件里,然后所有的加载资源都是通过拷贝文件去查询的。

所以为啥子包不能通过设置搜索路径优先级去加载对应的资源呢。
@jare 大佬看看。

每日的顶顶

每日的顶顶