做用:針對不一樣的運行時環境,使用不一樣的內容。web
1)不一樣目標平臺,簡化對應AB加載算法
舉例:一個AB包含用於PC平臺的高清紋理,另外一個AB包含用於安卓手機的低清紋理,可是他們使用相同的AB名和資源名,只有變體名不一樣。因而在運行時,不須要更改加載代碼,就能夠加載對應的AB變體。網絡
2)相同目標平臺,根據不一樣硬件規格,加載不一樣AB性能
舉例:不一樣的硬件規格包括性能差別、屏幕寬高比、分辨率等。webgl
1)不一樣的變體必須對應不一樣的資源線程
舉例:就算一張紋理的兩個變體只有壓縮方式不一樣,這張紋理也必須複製兩份,各自單獨設置變體名。內存
缺點:增長大型項目的資源管理複雜度;若是要更新,全部版本的資源都要更新,unity 沒有提供直接的解決方案。資源
2)本身實現AB變體it
① 經過給資源名添加有意義的後綴,來識別特定的AB變體。打包
② 經過程序,根據後綴更改導入器的設置,或者更改預設上所掛載組件的參數。
① 加載時間:從內存加載AB時,加載未壓縮的比壓縮的快。
② 打包時間:使用LZMA和LZ4格式壓縮文件很慢;而Unity又是連續壓縮AB,若是AB不少,壓縮處理會佔用很長時間。
③ 應用大小:壓縮AB包將減小應用包大小。
④ 內存佔用:使用LZ4壓縮格式,或未壓縮,內寸佔用相對較少。
⑤ 下載時間:若是AB包較大,或用戶網絡帶寬較小,建議壓縮;若是AB包只有小几十兆,且用戶網絡帶寬大,好比面向PC平臺,則能夠不壓縮。
若是AB中大部分是採用 Crunch 壓縮算法壓縮過的DXT紋理資源,則打包時不該該再被壓縮(該算法應該也支持ETC格式,優勢是壓縮比高,缺點是壓縮時間長)。
一、由於 WebGL 不支持工做線程,所以解壓縮工做發生在主線程。
二、建議使用小尺寸AB包,緩解性能壓力。
三、WebGL 只支持 LZ4壓縮、未壓縮資源。