Addressables一些內容

Getting started | Addressables | 1.18.19 (unity3d.com)

1柬采,加載資源
  • 使用AssetReference的方式
    1,在腳本中聲明AssetReference變量
    2卡啰,在Inspector中賦值
    :AssetReference不會自動加載或卸載引用的資產静稻,需要手動調用相關API(LoadAssetAsyncReleaseAsset
  • 使用地址的方式(Addressables.LoadAssetAsync<T>(address)
    :加載后同樣需要手動卸載相關資產
  • 使用標簽的方式(Addressables.LoadAssetAsync<T>()
    :測試失敗
2匈辱,資源組打包方式
  • 將組內資源打包成一個包
  • 每項單獨打包
  • 按照標簽打包
3振湾,一些概念

Asset address:標識可尋址資產的字符串ID⊥隽常可以作為鍵來加載資產押搪。
AssetReferences:可用來與可尋址資產進行綁定纲熏。在代碼中創(chuàng)建該類型的實例后帝美,可在Inspector窗口中為其賦值(可尋址資產類型)亚侠。
Label:標簽咙轩∶疤眩可以添加到多個資產上荸哟,可以作為鍵來加載/卸載資產嘱能。
Asset location:用來描述如何加載資產及其依賴項的運行時對象擎浴,可以作為鍵來加載對象滥朱。
Key:用來表示一個或多個可尋址資源的對象根暑,包含addresslabel徙邻、AssetReferences實例排嫌、location對象。
Asset loading and unloading:在運行時用來加載缰犁、卸載資產的API淳地。
Dependencies:資產依賴項。
Dependency and resource management:可尋址系統(tǒng)使用引用計數(shù)來跟蹤正在使用的資產和Assetbundles帅容,包括是否要加載/卸載依賴項颇象。
Group:可尋址資產的分組〔⑴牵可設置組內資產的打包方式和加載方式夯到。
Content catalogs:用來描述資產和包含資產的資源的映射關系。
Content builds:使用可尋址資產時饮亏,在構建項目前耍贾,要先構建內容。
Multiple platform support:運行平臺路幸。
Addressables tools:可尋址系統(tǒng)提供的工具荐开。可用來組織简肴、構建晃听、優(yōu)化內容。

  • Asset address(資產地址)
    1,可尋址系統(tǒng)的一個特性是在運行時可以通過地址加載資產能扒,不管資產是放在本地還是遠端佣渴。系統(tǒng)的資源管理器通過查找catalogs中的地址找到資產存放的位置(資產可以內置、放在本地緩存中初斑、放在遠端)辛润。
    2,資產的地址和其物理位置無直接關系见秤,兩者通過Content catalogs進行映射砂竖。
    3,一個資產對應一個地址鹃答,而一個地址可以對應多個資產乎澄。相同地址的資產可以通過標簽進行區(qū)分。
  • AssetReference
    1测摔,AssetReference還包含其他類型置济,如 AssetReferenceGameObject(AssetReference<GameObject>)...
  • Loading and releasing assets
    1,加載資源時只需要加載主資產(依賴項會自動加載)锋八。
    2浙于,加載的可尋址資產需要手動卸載(否則會占用內存)。
    3查库,可尋址系統(tǒng)會對已加載的資產的引用進行追蹤,當引用不為0時黄琼,不會卸載樊销。
    4,加載和卸載的方法是對應的脏款,加載使用LoadAssetAsync時围苫,卸載應使用Release,加載使用InstantiateAsync時撤师,卸載應使用ReleaseInstance剂府。
  • Dependency and resource management
    1,加載資產時剃盾,系統(tǒng)自動加載其依賴項腺占。卸載時同樣會自動卸載其依賴項(除非依賴項被其他加載的資產引用)。
  • Addressables groups and labels
    1痒谴,所有可尋址資產隸屬于某個組衰伯,不為其指定時使用默認組。
    2积蔚,組規(guī)定了組內資產的打包方式意鲸。
  • Group schemas
  • Content catalogs
    1,Content catalogs用來表明資產的地址和物理位置的映射關系。
    2怎顾,一個Unity項目有一個Content catalogs读慎,
    3,可以加載其他Unity項目創(chuàng)建的Content catalogs來加載這些項目生成的可尋址資產(即可以創(chuàng)建Unity工程專門用來生成可尋址資產后放到其他項目里用)槐雾。
    4夭委,生成Content catalogs時會同時生成hash文件,在加載遠端的可尋址資產時蚜退,哈希值用來校驗資產是否更新需要下載闰靴。
    5,Profile中配置了Content catalogs中與資產地址對應的加載路徑钻注。
  • Content builds
    1蚂且,內容生成與項目生成相互獨立。
    2幅恋,生成內容時杏死,會生成Content catalogs文件、hash文件捆交、包含了資產的Assetbundle包淑翼。
    3,生成的內容與平臺綁定品追,為不同平臺生成的內容不能相互使用玄括。
  • Play mode scripts
    定義了在編輯器模式下可尋址系統(tǒng)加載、卸載資產的方式肉瓦。
    Use the Asset database:直接使用項目內的可尋址資產
    Simulate groups:模擬加載
    Use existing build:使用生成的內容
  • Support for multiple platforms
4遭京,Assetbundle的壓縮格式

Unity - Manual: AssetBundle compression (unity3d.com)

  • 兩種壓縮格式(LZMA、LZ4)
    1泞莉,默認情況下哪雕,生成assetbundle包時使用LZMA格式,緩存時使用LZ4格式鲫趁。
    2斯嚎,與LZ4格式相比,使用LZMA格式生成的包更小挨厚,但如果要使用包中的某個資源需要將整個包解壓堡僻。LZ4為基于塊的壓縮,使用某個資源時只需要解壓包含資源的塊疫剃。
    3苦始,LZMA格式不適用于WebGL平臺。
  • Assetbundle包的兩種緩存
    1慌申,內存緩存
    內存緩存使用無壓縮格式存在于RAM中陌选,可快速訪問理郑,缺點是會占用大量內存。
    2咨油,硬盤緩存
  • 加載Assetbundle
    1您炉,使用UnityWebRequest加載Assetbundle時,在API中傳入版本號參數(shù)Unity會將下載的資源緩存到硬盤上役电,否則會存入內存中赚爵。
    2,在API中法瑟,將Caching.compressionEnabled參數(shù)設為true冀膝,Unity在將資源存入硬盤時使用LZ4壓縮格式,設為false則不壓縮霎挟。(不傳入默認為true)
    3窝剖,AssetBundle.LoadFromFileAssetBundle.LoadFromFileAsync始終對 LZMA AssetBundle 使用內存緩存,所以最好使用 UWR API酥夭。如果無法使用 UWR API赐纱,您可以使用 AssetBundle.RecompressAssetBundleAsync將 LZMA AssetBundle 重寫到磁盤中。
5熬北,資產組的更新策略

資產組的組更新策略包含兩種:Cannot Change Post Release疙描,Can Change Post Release

  • Cannot Change Post Release:不經常更新的組(本地組)應該設置為本項策略讶隐。
  • Can Change Post Release:經常更新的組設置為此項起胰。

    1,不管選哪個策略資產組都是可以更新的巫延,區(qū)別在于處理和訪問資產的方式效五。
    2,不是完整生成時烈评,不要改資產組的更新策略火俄。
    3犯建,設置為Cannot Change Post Release的資產組讲冠,當組中的某個資產需要更新時,Check for Content Updates工具會將該資源移入新的組進行打包用于更新适瓦,(新組的加載方式為遠程加載竿开,更新策略為Can Change Post Release),換句話說玻熙,設置為Cannot Change Post Release的資產組中的某個資產需要更新時否彩,系統(tǒng)只會下載需要更新的內容,而不會下載整包嗦随。相對的列荔,設置為Can Change Post Release的資產組中的某項資產需要更新時敬尺,系統(tǒng)需要下載整包。
    結論:需要從本地加載的資產組和需要從遠端加載但比較大的資產組應設置為Cannot Change Post Release贴浙,需要從遠端加載較小且需要頻繁更新的組設置為Can Change Post Release砂吞。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市崎溃,隨后出現(xiàn)的幾起案子蜻直,更是在濱河造成了極大的恐慌,老刑警劉巖袁串,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件概而,死亡現(xiàn)場離奇詭異,居然都是意外死亡囱修,警方通過查閱死者的電腦和手機赎瑰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蔚袍,“玉大人乡范,你說我怎么就攤上這事∑⊙剩” “怎么了晋辆?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長宇整。 經常有香客問我瓶佳,道長,這世上最難降的妖魔是什么鳞青? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任霸饲,我火速辦了婚禮,結果婚禮上臂拓,老公的妹妹穿的比我還像新娘厚脉。我一直安慰自己,他們只是感情好胶惰,可當我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布傻工。 她就那樣靜靜地躺著,像睡著了一般孵滞。 火紅的嫁衣襯著肌膚如雪中捆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天坊饶,我揣著相機與錄音泄伪,去河邊找鬼。 笑死匿级,一個胖子當著我的面吹牛蟋滴,可吹牛的內容都是我干的染厅。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼津函,長吁一口氣:“原來是場噩夢啊……” “哼糟秘!你這毒婦竟也來了?” 一聲冷哼從身側響起球散,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤尿赚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蕉堰,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凌净,經...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年屋讶,在試婚紗的時候發(fā)現(xiàn)自己被綠了冰寻。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡皿渗,死狀恐怖斩芭,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情乐疆,我是刑警寧澤划乖,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站挤土,受9級特大地震影響琴庵,放射性物質發(fā)生泄漏。R本人自食惡果不足惜仰美,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一迷殿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧咖杂,春花似錦庆寺、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至奏窑,卻和暖如春导披,著一層夾襖步出監(jiān)牢的瞬間屈扎,已是汗流浹背埃唯。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鹰晨,地道東北人墨叛。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓止毕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親漠趁。 傳聞我的和親對象是個殘疾皇子扁凛,可洞房花燭夜當晚...
    茶點故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內容