在平時的開發中,把預設打包成 assetbundle 文件是非常普遍的做法,但是我們不能隨便把預設打包成 assetbundle 就算完事,我們應該先清楚把預設打包成 assetbundle 的目的,通常我們把預設打包成 assetbundle 文件是為了壓縮預設的文件尺寸以方便從網絡快速加載,既然這樣,我們就應該知道打包預設的時候應該注意哪些問題。
我們先創建測試環境,場景中的 Stamp7 與 Stamp9 網格不同,但是材質相同,R1_Column1 與 Stamp7 以及 Stamp9 的網格、材質都不相同,場景如圖:
接著我們把場景的子對象(場景中的 Stamp7、Stamp9、R1_Column1)先做成預設,如圖:
然后我們分別把這三個文件打包成 assetbundle 文件,并觀察生成 assetbundle 文件大小,如圖:
從圖中我們可以看出,因為 Stamp7、Stamp9 材質相同,他們生成出來的文件大小差不多大,但是他們是獨自打包,所以材質也是獨立的,因為材質無法共享。
下面我們把 Trees(包括 Stamp7 與 Stamp9)以及 Stones 也做成預設,如圖:
然后我們再把 Trees 與 Stones 打包成 assetbundle 文件,如圖:
從圖中我們可以看出 Trees(包括 Stamp7 與 Stamp9 兩個預設文件)的大小差不多是 Stamp7 與 Stamp9 大小的一半,這是因為 Stamp7 與 Stamp9 材質相同,在打包的時候,共享一份材質,所以材質只有一份。
下面我們給 Stamp7 附加 R1_Column1 的材質,如圖:
然后我們再打包 Stamp7 文件,如圖:
從下圖中,我們可以看到 Stamp7_1 的文件大小比 R1_Column1 與 Stamp7 都要大,因為 Stamp7_1 包括了 R1_Column1 與 Stamp7 的材質。
然后我們再把 Trees 文件重新打包,從下圖中我們依然能發現 Trees 文件也變大了,因為 Trees 文件也包括了 R1_Column1 的材質文件。
總結:到這兒我們可以對預設的注意事項有一些了解了,那就是盡量把材質相同的預設放在一起打包。
新聞熱點
疑難解答