UH1L3——AB包依赖
UH1L3——AB包依赖
本章代码关键字
1 | AssetBundleManifest //主包的依赖文件 |
AB包依赖
当某个资源使用了另外一个AB包内的资源,则可以说该资源对那个AB包存在依赖
假设我们创建了一个红色材质球,让modelAB包中的Cube使用它,而不将这个材质球打包进AB包中
则下次进行AB包打包时,该材质球将被默认的打包到modelAB包内
而如果将这个红色材质球打入到其他AB包诸如head内,而只加载model包,在加载Cube将会导致Cube的材质丢失
因为model内并不存在Cube的材质
可见,一个资源身上用到了别的AB包中的资源
如果只加载这时自己的AB包,通过它创建对象,将会出现资源丢失的情况
这种时候需要把依赖包一起加载了才能正常
1 | //加载AB包 |
使用主包获取依赖信息
当一个游戏项目很大时,很难理清楚哪些AB包依赖着哪些包,因此很少会手动将某个资源所有的依赖包一起加载出来
这时我们需要利用主包获取依赖信息
首先将主包,也就是和存储AB包的目录名一样的包加载出来
然后将主包的AssetBundleManifest
文件加载出来,AssetBundleManifest
文件的名字就是固定的"AssetBundleManifest"
然后将调用assetBundleManifest.GetAllDependencies
方法,传入包名,得到其所有的依赖的包名
通过这些包名加载即可加载所有的依赖包
1 | //加载主包 |
缺点:假设包A依赖包B,包C,包D,而资源a只依赖包B,即使只需要加载资源a仍然会把包C与包D加载出来
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 文KRIFE齐的博客!