如果只是模型的不同,贴图与材质相同下。
那么打AB包时,先把共用的贴图和材质设置好打包标签,接着设置好模型的打包标签。
Unity在打AB包时,会自动识别不同的模型是否有共用的贴图材质。
打包出来的效果如右图,只有一份贴图材质,避免了重复。左边的情况是因为没有对贴图材质设置打包标签,Unity不会对其识别。
同理,在游戏中加载AB包时,材质贴图包与模型包要一起加载。只加载模型包会导致贴图丢失,因为模型包里面的材质是依赖于材质包的。材质包没有加载的话模型包自然会丢失贴图,哪怕你工程下有一模一样的材质。
当读取某一个包下的资源时,它可能还含有依赖包,通过ab包下的Manifest文件可以读取出当前所有资源以及这个资源所依赖的所有文件
AssetBundle manifestAB = AssetBundle.LoadFromFile("AssetBundles/AssetBundles");
AssetBundleManifest manifest = manifestAB.LoadAsset<AssetBundleManifest>("AssetBundleManifest");//读取ab包下的Manifest文件