頂置文

========================= [頂置文開始] =========================
獨立遊戲「蠟筆大冒險」專頁

JJKid 常出沒地點:




========================= [頂置文結束] =========================

2024年8月10日 星期六

Unity 本地端的 Addressable 使用心得筆記

 1. 安裝 Addressable 套件。


2. Addressable Group。

在這個路徑下可以開啟 Addressable Group。


預設會先建好一個 Default 的 Group,可以自己改名。也可以再新增更多的 Group。
這裡的一個 Group 相當於一個 Bundle,所有被納入同一個 Group 的資源就會被打包成一個 Bundle。
要把資源納管只要把資源拖拉進 Group 即可,它會以資源的路徑當作預設的 Address Name,但這樣通常會很長一串,我們可以改名改成比較短的 Address Name。

在 Addressable Group 可以找到 Play Mode Script 的選項,第一項為「Use Asset Database」,意思是在本地端測試,速度最快,但它並不會真的去載入 Bundle,所以通常只有在開發階段簡單驗證程式有沒有寫錯的情況下會用這個選項來測試。
第二項為「Sumilate Group」,進階一點的模擬測試,很少用不提。
第三項為「Use Existing Build」,這個是真的去載入 Bundle 來測試,通常都選這個,以這個模式測試才是實機運作的真實情況。

選擇 Group 時,在 Inspector 可以選擇此 Bundle 的打包路徑與載入路徑,分別有 Local 與 Remote 二種選項。
選擇 Local 就是打包到本地端,載入也在本地端,也是這篇教學會用到的模式。
選擇 Remote 一樣會打包到本地端的某個路徑,然後要把該路徑下的檔案上傳到某個 Server,然後把 Remote 端的載入路徑改為該 Server 的網址與 Port,
這樣就可以由雲端來載入 Bundle。若要修改 Remote 的載入路徑,可以開啟 Addressable Profiles 視窗,裡面可以改。




3. 打包 Bundle。


打包完的 Bundle 會在指定的路徑,預設值在「你的專案路徑\Library\com.unity.addressables\aa\Windows\StandaloneWindows64\」。


4. 發佈執行檔。

依照正常流程發佈執行檔,Unity 會自動把 Bundle 複製到「StreamingAssets/aa/StandaloneWindows64」裡面,執行後也能正確讀到這個路徑下的 Bundle。


5. 替換 Bundle。

發佈執行檔之後,如果要替換執行檔的 StreamingAssets/ 裡面的 Bundle,不能只更新 Bundle 檔,要到它的上一層資料夾,也就是 aa/,
把所有的檔案都刪掉,然後把同樣的整包資料複製過來才行。


6. 載入與卸載 Bundle。

這裡以載入 ScripableObject 做範例,填入要載入的 Address Name,這個就是我們前面自己定義的名稱。因為它是非同步載入,要加上 Completed 接收回傳事件。
記住有載入就要有卸載,這樣才會把記憶體釋放掉。
Addressables.LoadAssetAsync() 對應 Addressables.Release()。
Addressables.LoadSceneAsync() 對應 Addressables.UnloadSceneAsync()。
Addressables.InstantiateAsync() 對應 Addressables.ReleaseInstance()。




7. 參考資料。

沒有留言:

張貼留言