隨著擺放的物件增加,切換場景時的載入時間也會變長。
若沒有製作 Loading 畫面,遊玩時畫面會卡住一小段時間,算是體驗上不太好的部分。
這次是初次體驗 StartCoroutine 和 IEnumerator ....所以也不曉得理解上有沒有問題。
基本上是程式碼碰到 StartCoroutine 會去執行 IEnumerator 介面內的程式
碰到 yield return 時會先跳離介面同步執行 StartCoroutine 之後的程式
然後再回去繼續執行 IEnumerator 介面,直到迴圈結束沒遇到 yield return 為止
------------------將江將開始囉-------------------
STEP 1 :準備基本素材
大概就是常見的底圖、讀取條、和設定 UI text
這邊還多放了一隻兔子會跟著進度條往前跑
注意讀取條的 Pivot (軸心) 需設定靠左,這樣透過設定 localScale,可做出讀取條由左跑至右的效果。
STEP 2:編寫腳本
(24行) 背景載入,可以在運行 Loading 畫面的同時,順便加載下一個要切換的場景。
(27行) 若設定為true,系統會自動在加載完畢時切換過去,但這樣不會跑到100%還會有閃爍。
(31行) yield return跳過後面的程式碼,重頭再來一次。null表示沒有回傳任何東西。
(34行) 在allowScreenActivation為false的同時,最多加載到90%,所以前半段跑完,要再手動補到100%。
(37行) 可切換至準備好的場景。
(41.42行) 根據載入情形,縮放讀取條以及替換UI text。
STEP 3 :添加動畫
目前的已能做出載入的效果,但是動態上不好看。
所以新增幾個效果:
(1) %數可以一幀+1疊上去
(2) 兔子會隨著讀取條往前移動。
(19-20行) 兔子的初始位置。須放在StartCoroutine前面。
(36.37.44.45行) 數字累加的效果。
(39.47行) WaitForEndOfFrame 直到下一幀再繼續執行腳本。
(57.58行) 讓兔子根據當前%數,移動距離。(初始位置+總距離*%數)
STEP 4 :驗收效果
嘛。兔子很可愛吧 <3
之後實際上陣的美術圖還會再修改,但至少已經把效果寫好了~
希望畢業製作進度順利阿QQ
-------------------------------------------
> 參考資料:
1. 【Unity】Loading Screen 讀取畫面製作:
https://jerrard-liu.blogspot.tw/2015/06/LoadingScreen.html
2. Unity3D中製作異步Loading進度條所遇到的問題:
http://www.cnblogs.com/clnchanpin/p/7207159.html
3. Unity3D製作計數器「StartCoroutine應用」:
https://home.gamer.com.tw/creationDetail.php?sn=2649394