1. 程式人生 > >Unity:非同步載入場景資源進度介面

Unity:非同步載入場景資源進度介面

建立載入介面LoadingScene,用於處理載入進度條。

匯入NGUI資源包,在Unity3D選單欄中選中NGUI-Open-Prefab Toolbar,在Prefab Toolbar視窗中,選中Control - Colored Progress Bar拖拽至Hierarchy面板,修改名字為"Loading"。

在Hierarchy面板,為Loading新增子物體Label,Label的內容為"loading",然後為UI Root的Camera建立指令碼LoadingScripts。

LoadingScripts指令碼程式碼如圖所示:

非同步載入場景otherScene的速度直接決定了進度條的實際進展速度。

但是這樣做載入場景時loadScene一閃而過,直接跳轉到了場景otherScene,無法看到進度條進展的過程.原因是,場景loadScene太小,載入場景loadScene的時間非常非常短,此時用載入場景的速度來控制進度條的進展速度就會讓載入場景失去它存在的意義。上述程式碼簡單實用性強,非常適合載入大場景大資源等耗時長的情況。

所以為了滿足小資源/場景載入時也顯示出進度條,使用如下圖所示程式碼:

這裡用到AsyncOperation另一個重要的屬性AsyncOperation.allowSceneActivation。

當 acOp.allowSceneActivation = false時即使場景已經載入完成也不會自動跳轉,直到acOp.allowSceneActivation = true。