概述:Unity可尋址系統(tǒng)的資源熱更是我遇到過最簡單的熱更方式了。只需修改資源組然后發(fā)布資源熱更即可。本篇文章就來為講解AA的資源熱更,并通過CCD實現(xiàn)資源熱更完整流程。
一,本地實現(xiàn)資源熱更
1.1 資源熱更概念
Addressables 將資源的引用和打包分開處理,可加快運行模式下和運行版本的項目迭代。系統(tǒng)將資源合并為一個個的 Asset Bundles(資源包),一種可在運行時分發(fā)、加載資源的 Unity 專有文件結(jié)構(gòu),然后生成一個內(nèi)容目錄來輔助運行時的內(nèi)容加載與資源跟蹤。
打包出來的資源目錄:
Addressable的資源熱更,特別適合那種邊下邊玩的游戲,因為它不是在游戲剛進去時更新完所有資源。
我們把下載AB的實現(xiàn)交給了Addressable,它的實現(xiàn)是當(dāng)你在加載資源時找到這個資源的ab包,然后通過UnityWebRequestAssetBundle
判斷該AB包是不是已經(jīng)下載如果下載那么直接從緩存目錄加載,不然就下載到緩存目錄再加載。所以我們要先加載資源才會去下載ab包。
若需要進入游戲就下載所有資源可以參考我上一篇文章寫的與下載工具類:
Unity 之 可尋址系統(tǒng) - 資源遠程加載 - 資源預(yù)下載 - 進階(三)
1.2 具體實現(xiàn)步驟
先在本地模擬一下資源熱更的流程吧。
步驟如下:
- 準(zhǔn)備兩個預(yù)制體
- 創(chuàng)建一個資源組,將一個預(yù)制放到組中
- 編寫代碼加載資源組中,將其生成到場景中
- 資源地址設(shè)置,打資源包
- 發(fā)布查看是否正常加載運行
- 將資源組中的預(yù)制替換,發(fā)布本地資源熱更
- 再次運行查看是否更換
1.3 本地資源熱更
按照上面的步驟操作一下:
-
準(zhǔn)備兩個預(yù)制體,我這里準(zhǔn)備了兩個不同材質(zhì)的Cube
-
創(chuàng)建一個資源組,資源組命名為:HotUpdate Group。將一個預(yù)制放到組中,資源Key命名為:UpdateCube
-
編寫代碼加載資源組中,將其生成到場景中。創(chuàng)建一個空物體將代碼掛載,運行查看效果:
示例代碼如下:
-
資源地址設(shè)置,打資源包
設(shè)置資源地址:將本地地址都修改為自定義。注意地址要在根目錄下開始寫(Windows就在盤符開始)。
選中2步驟創(chuàng)建的HotUpdate Group
資源組,在Inspector面板上設(shè)置為Local,此時下面的路徑就變成上面設(shè)置的了:
打資源包在Groups面板,Build -> New Build -> Default Build Script
打包出來的: -
發(fā)布查看效果,可以成功加載設(shè)置的預(yù)制:
-
將資源組中的預(yù)制替換,發(fā)布本地資源熱更:
將需要替換的預(yù)制也放到剛剛的資源組中,然后將Key修改到和被替換的一樣
移除被替換的資源:(注意:這里的資源和2步驟中的Key保持一直,因為代碼是根據(jù)這個Key來加載的)
發(fā)布資源熱更:Groups面板 Build ->Update a Previous Build
點擊后彈窗選擇一個.bin文件(找到你的要發(fā)布的平臺文件夾)
發(fā)布完成后,可以在剛剛的文件夾下看到兩個前綴為hotupdategroup
的資源組了 -
再次運行,可以看到白色Cube變?yōu)榱撕谏模?br>
這就通過可尋址資源管理系統(tǒng),實現(xiàn)本地資源熱更了。其實聯(lián)網(wǎng)熱更也是一樣的道理,只需要將上面配置加載資源地址修改為在網(wǎng)絡(luò)加載,再將打包出來的資源上傳到CDN上即可,下面通過Unity推薦的CCD實現(xiàn)一下聯(lián)網(wǎng)熱更。
若你看了上一篇文章CCD的使用,可以結(jié)合上面這個本地資源熱更流程自己嘗試一下聯(lián)網(wǎng)熱更。
二,AA + CCD實現(xiàn)資源熱更
2.1 工程設(shè)置
使用CCD的準(zhǔn)備工作,詳情查看上一篇CCD的使用
-
創(chuàng)建桶
在后臺創(chuàng)建一個新的桶來實現(xiàn)資源熱更:我這里命名為:AA+CCD-ReGeng: -
打包設(shè)置:
設(shè)置遠程加載路徑: -
打包資源:
設(shè)置完成后,進行資源打包。
注意此時的資源組是遠程加載的 -
上傳資源
選擇剛剛創(chuàng)建的AA+CCD-ReGeng桶,然后選擇3步驟中打包的資源,點擊Sync上傳: -
上傳版本
點擊New新建一個版本,然后Load同步到后臺 -
上傳完成后,可以在后臺看到剛剛上傳的版本
-
此時打包Apk安裝到手機上,可成功加載遠程的黑色Cube就可以了
2.2 實現(xiàn)熱更
-
修改資源包內(nèi)容
這里是將黑色的“HotUpdateCube”,修改為白色的Cube預(yù)制。(注意可尋址地址不要) -
生成熱更補丁
在Build
選項下選擇,Update a Previous Build
,點擊之后會彈窗
選擇需要熱更的平臺的addressables_content_state.bin
文件:
這個文件就在工程的AddressableAssetsData
文件夾下,是每次打包資源生成的: -
上傳熱更補丁
和上傳資源步驟基本一致,1選擇文件夾,2上傳資源,3新建版本,4發(fā)布資源 -
檢查資源狀態(tài)
上傳完成后,可以到后臺看到資源的版本信息了:文章來源:http://www.zghlxwxcb.cn/news/detail-401290.html
-
重啟Demo,實現(xiàn)熱更效果,Cube變?yōu)榘咨模?br>
文章來源地址http://www.zghlxwxcb.cn/news/detail-401290.html
到了這里,關(guān)于Unity 之 Addressable可尋址系統(tǒng) -- 資源熱更新 -- 進階(四)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!