我對Unity5.x之後的AssetBundle的依賴機制有壹點了解,創建了壹個項目驗證GitHub:ge wel/asset bundle pro ABS cene。團結。
有哪些資源?壹些常見的資產類型
assetbundle打包命令是buildpipeline。buildassetbundles,格式為:
引用:
依賴性處理不當是造成資源冗余的重要原因。
我的測試項目未壓縮;
4個精靈紋理(未壓縮),紋理1-4;分離成未壓縮的ab包,大小如下圖所示。
目前有五個prefab,sprite1.prefab相關紋理tex1、sprite2.prefab相關紋理tex2、sprite3.prefab相關紋理tex3、sprite12.prefab相關紋理Tex1/Tex2、sprite123.prefab相關紋理。
將這五個prefab打包成ab包,即prefabsp1、prefabsp2、prefabsp3、prefabsp12和prefabsp123。
分為兩種情況:
這五個預設包非常小,並且只有紋理ab包相關聯。
例如,sprite1和sprite123兩個預設包的清單文件顯示,相關的tex1.png、tex2.png和tex3.png已在相應的ab包中鍵入,因此它們依賴於相應的ab包,並且依賴關系依賴於ab列表。
此時,只加載了sprite 123 . prefab(asset bundle . loadfrom file+bundle . load asset+instantiate ):
妳會發現使用tex1.png、tex2.png和tex3.png的圖像對象上的圖片已經丟失,並且顯示也是錯誤的白色。原因是prefabsp123不包含這三張圖片(經UnityStudio驗證),只加載了它,所以沒有辦法找到相應的紋理。
如果要正常顯示,需要預先加載tex1.png、tex2.png和tex3.png對應的ab包,例如預先加載tex1和tex2 ab包,效果如下:(tex1和tex2正常顯示,但tex3不加載或不正常顯示)。
查看帶有UnityStudio的ab包,我們可以看到prefabsp1不僅包含sprite1.prefab,還寫入了Sprite-tex1.png .同樣,prefabsp12和prefabsp123也有自己的tex65438。
在這種打包方式中,被多次引用的資源將單獨存在於使用它的每個資產包中。也就是經常提到的資源冗余。
核心是避免資源冗余。
做法是: