之前感叹了Prefab的强大,以及创建预设体时的小坑一个,这里还有一个坑同样需要注意。
依赖包的设置。这里必须要说一下,从网上查到的资料来说,也就是能查到
BuildPipeline.PushAssetDependencies();
BuildPipeline.PopAssetDependencies();
这两句代码的嵌套使用,其它的或多或少会提及,但是不及自己使用时的心得体会。这里就说一下场景资源打成assetbundle时的注意事项,
详细代码就不方便写了,只说一下具体的思路。
1、我们不可能在项目中手动的规定打包文件的具体名称,和具体的依赖包是哪个,但是我们可以通过代码来完成。
2、收集好要打成的预设体和依赖项。
3、打包过程要注意
BuildPipeline.PushAssetDependencies();
BuildPipeline.PopAssetDependencies();
的嵌套问题。尤其想要做到预设之间不依赖的情况。
关于3可以详细说一下,这里踩过雷,也实验过。想要做到只对类文件依赖的情况,毕竟我们不可能去单独针对某个依赖的文件,再去生成依赖它的assetbundle。
举个已经证明的例子,如果目前有1~15号图片以及a~z个物体,这些物体使用到的图片各个不同,有的是2张以上,这时候要怎么打成对应的assetbundle呢?
经过验证的例子
BuildPipeline.PushAssetDependencies();
for(int i = 0; i < 15; i++)
{
1~15的具体打包代码
}
for (int j = 0; j < 26; j++)
{
BuildPipeline.PushAssetDependencies();
a~z的具体打包代码
BuildPipeline.PopAssetDependencies();
}
BuildPipeline.PopAssetDependencies();
这样打出来的assetbundle中a~z之间除了有对图片的单独依赖外,其它没有任何依赖关系,也就是说,a~z的Assetbundle中会出现重复资源,如果不想出现,只要把
BuildPipeline.PushAssetDependencies();
BuildPipeline.PopAssetDependencies();
从a~z的打包代码所在的for循环中拿出来就可以了。后遗症就是需要自己维护好a~z之间所有的依赖关系。这个就只能看各位的本事了。