269 字
1 分鐘
[Unity] Addressables 在切換 Scene 同時進行 Load 會卡住
這篇其實是滿久以前打的,想說來試著寫一篇教程式或 Blog-like 的文章,寫好之後一直壓在我的 hackmd 裡面沒有公開,現在總算有地方可以拿出來了。 不過我沒試過最新版本的 Addressables 有沒有修好這問題,還是放出來給各位參考下
==以下為廠商提供原文==
問題簡介
rt,前幾天在弄專案時用到 Addressables 拆出 DLC 包, 在實作時,想法是讀取場景時順便載包,程式邏輯大致如下所示
var loadScene = SceneManager.LoadSceneAsync("Main");var loadAddressables = Addressables.LoadAssetAsync<GameObject>($"something");loadScene.allowSceneActivation = false;
while(!loadScene.isDone || !loadAddressables.isDone){ Debug.log(loadScene.progress / 0.9f + loadAddressables.PercentComplete); yield return 0;}
loadScene.allowSceneActivation = true;程式會卡在中間的迴圈出不來,loadAddressables.PercentComplete 永遠卡在同一個固定數字
並且完全沒有報錯報warn報error,把 Addressables 的 log 全開也沒有東西
解法
Debug 了兩天,把程式邏輯稍微改一下又可以了
var loadScene = SceneManager.LoadSceneAsync("Main");while(!loadScene.isDone){ Debug.log(loadScene.progress / 0.9f / 0.5f); yield return 0;}
var loadAddressables = Addressables.LoadAssetAsync<GameObject>($"something");
while(!loadAddressables.isDone){ Debug.log(0.5f + loadAddressables.PercentComplete / 0.5f); yield return 0;}References
[Unity] Addressables 在切換 Scene 同時進行 Load 會卡住
https://fuwari.vercel.app/posts/unity-addressables-在切換-scene-同時進行-load-會卡住/