揭開AssetBundle廬山真面目(二)

2021-08-15 03:10:12 字數 1965 閱讀 1318

昨天的分享揭開assetbundle廬山真面目(一),我們主要剖析了4.x版本下的assetbundle管理機制,那5.x版本究竟有些什麼變化呢?今天我們來一**竟。

(1)唯一api

public static assetbundlemanifest buildassetbundles(string outputpath, buildassetbundleoptions      assetbundleoptions = buildassetbundleoptions.none,buildtarget targetplatform = buildtarget.webplayer);
呼叫buildpipeline.buildassetbundles,引擎將自動根據資源的assetbundlename屬性(以下簡稱abname)批量打包,自動建立bundle以及資源之間的依賴關係。

(2)打包規則

在資源的inpector介面最下方可設定乙個abname,每個abname(包含路徑)對應乙個bundle,即abname相同的資源會打在乙個bundle中。如果所依賴的資源設定了不同的abname,則會與之建立依賴關係,避免出現冗餘。

支援增量式發布,即在資源內容改變並重新打包時,會自動跳過內容未變的bundle。因此,相比4.x,會極大地縮短更新bundle的時間。

(3) 新打包選項

除了前文提到的,5.x下預設開啟的三個選項(completeassets ,用於保證資源的完備性;collectdependencies,用於收集資源的依賴項;deterministicassetbundle,用於為資源維護固定id)之外,5.x中新增了以下選項:

與4.x不同的是,對於移動平台,5.x下缺省會將typetree資訊寫入assetbundle,因此在移動平台上disablewritetypetree選項也變得有意義了。

(4)manifest檔案

在4.x版本中,我們通常需要自行維護配置檔案,以記錄assetbundle之間的依賴關係,並供執行時使用。而在5.x版本中,manifest檔案可以免去這一過程。

(5) variant引數

variant引數能夠讓assetbundle方便地進行「多解析度支援」,相關詳解請移步下文。

在新系統中,新增了以下兩個實用的新特性,也許能夠給開發者帶來事半功倍的效果。

(1) manifest檔案

在打包後生成的資料夾中,每個bundle都會對應乙個manifest檔案,記錄了bundle的一些資訊,但這類manifest只在增量式打包時才用到;同時,根目錄下還會生成乙個同名manifest檔案及其對應的bundle檔案,通過該bundle可以在執行時得到乙個assetbundlemanifest物件,而所有的bundle以及各自依賴的bundle都可以通過該物件提供的介面進行獲取。

(2) variant引數

在資源的inspector介面最下方,除了可以指定abname,在其後方還可以指定variant。打包時,variant會作為字尾新增在bundle名字之後。相同abname,不同variant的bundle中,資源必須是一一對應的,且他們在bundle中的id也是相同的,從而可以起到相互替換的作用。

當需要為手機和平板上的某個ui介面使用兩套解析度不同的紋理、shader,以及文字提示時,借助variant的特性,只需建立兩個資料夾,分別放置兩套不同的資源,且資源名一一對應,然後給兩個資料夾設定相同的abname和不同的variant,再給ui介面設定abname,然後進行打包即可。執行時,先選擇合適的依賴包載入,那麼後續載入ui介面時,會根據已載入的依賴包,呈現出相對應的版本。

揭開AssetBundle廬山真面目 一

1 常用打包api public static bool buildassetbundle object mainasset,object assets,string pathname,out uint crc,buildassetbundleoptions assetbundleoptions,b...

《望廬山瀑布》

日照香爐生紫煙,遙看瀑布掛前川。飛流直下三千尺,疑是銀河落九天。日照 句 太平寰宇記 香爐峰在廬山西北,其峰尖賀,煙雲聚散,如博山香爐之狀。品評 香爐,指廬山香爐峰,在廬山西北,其峰尖圓,煙雲聚散,如博山香爐之狀 樂史 太平寰宇記 可是,到了詩人李白的筆下,便成了另一番景象 一座頂天立地的香爐,冉冉...

《廬山煙雨》的境界

廬山煙雨浙江潮,未到千般恨不消。到得還來別無事,廬山煙雨浙江潮。以 人間詞話 賞之。詞以境界為最上。有境界則自成高格,自有名句。有有我之境,有無我之境。有我之境,以我觀物,故物我皆著我之色彩。無我之境,以物觀物,故不知何者為我,何者為物。廬山煙雨浙江潮,未到千般恨不消。據說 廬山美麗神秘的煙雨,錢塘...