场景分支资源过多
在对场景打包时,可能场景共享公共资源,导致所有的场景都在一个进程中打包,即便其他进程速度再快,也要等待场景分支,导致打包时间还是比较久,请问有何解决方案没?
我也没有办法解决这个问题,展望未来的scriptable build pipeline吧。
好的,多谢分享!
我尝试做了一个测试,Cube Prefab 引用了 Red Material
- 先打 Red 包,再打 Cube + Red 包
- 直接打 Cube + Red 包 两种方式打包的结果相同,文件内容一致。
使用的是 Unity 2019.3.0f3,不确定 Unity 版本是否影响结果,理论上来说不影响。
也就是说如果有资源 A,资源 B1 B2 B3 依赖 A,那么打包 A 包之后,B1 B2 B3 可以分到不同的 Unity 进程中打包,因为 A 包 AssetBundle 文件及 manifest 已经存在了,打包时会重用这个缓存。
具体信息还需要 @jiangzhhhh 再确认一下,看是否可以这样拆分资源进行打包。
@SiCoYu
- 以 Unity 场景这种 Unity 引用的形式将资源组合在一起加载显示,会引入大量的依赖问题。
- 但是如果尝试以自定义的序列化格式(如 XML、JSON 等等)非 Unity 引用的方式组织资源加载显示,完全可以做到运行时动态加载资源完成和场景加载一样的效果。
这样估计就可以解决 AssetBundle 依赖过多的问题。
关于大依赖树节点,我最近想到新思路。 就是将大节点按依赖层次分解成有依赖关系的小节点,举例:A资源同时依赖B,C资源,可以先将B/C同时并行构建,A等待B/C都完成后再执行。 A / \ B C
是的,我之前说的就是这个意思,按层次分割打包,但是物理上不同的 Unity 必须能同时访问打包出来的 Bundle 文件。 看起来似乎很可行,可以先做实验验证一下,如果可行的话再实现完整的流程。