【Unity優化】資源管理系列06:AssetBundle 變體與壓縮

做用:針對不一樣的運行時環境,使用不一樣的內容。web

1、變體

一、使用舉例

1)不一樣目標平臺,簡化對應AB加載算法

舉例:一個AB包含用於PC平臺的高清紋理,另外一個AB包含用於安卓手機的低清紋理,可是他們使用相同的AB名和資源名,只有變體名不一樣。因而在運行時,不須要更改加載代碼,就能夠加載對應的AB變體。網絡

2)相同目標平臺,根據不一樣硬件規格,加載不一樣AB性能

舉例:不一樣的硬件規格包括性能差別、屏幕寬高比、分辨率等。webgl

二、限制

1)不一樣的變體必須對應不一樣的資源線程

舉例:就算一張紋理的兩個變體只有壓縮方式不一樣,這張紋理也必須複製兩份,各自單獨設置變體名。內存

缺點:增長大型項目的資源管理複雜度;若是要更新,全部版本的資源都要更新,unity 沒有提供直接的解決方案。資源

2)本身實現AB變體it

① 經過給資源名添加有意義的後綴,來識別特定的AB變體。打包

② 經過程序,根據後綴更改導入器的設置,或者更改預設上所掛載組件的參數。

2、是否壓縮

一、是否壓縮的對比

① 加載時間:從內存加載AB時,加載未壓縮的比壓縮的快。

② 打包時間:使用LZMA和LZ4格式壓縮文件很慢;而Unity又是連續壓縮AB,若是AB不少,壓縮處理會佔用很長時間。

③ 應用大小:壓縮AB包將減小應用包大小。

④ 內存佔用:使用LZ4壓縮格式,或未壓縮,內寸佔用相對較少。

⑤ 下載時間:若是AB包較大,或用戶網絡帶寬較小,建議壓縮;若是AB包只有小几十兆,且用戶網絡帶寬大,好比面向PC平臺,則能夠不壓縮。

二、Crunch 壓縮

若是AB中大部分是採用 Crunch 壓縮算法壓縮過的DXT紋理資源,則打包時不該該再被壓縮(該算法應該也支持ETC格式,優勢是壓縮比高,缺點是壓縮時間長)。

3、AB 與 WebGL

一、由於 WebGL 不支持工做線程,所以解壓縮工做發生在主線程。

二、建議使用小尺寸AB包,緩解性能壓力。

三、WebGL 只支持 LZ4壓縮、未壓縮資源。

相關文章
相關標籤/搜索