Unity 簡單的進度條實現


制作進度條所需的資源:

用以載入進度條顯示的場景

進度條背景以及進度條本身(顏色區別)

展示百分制進度情況的Text文本

需要載入的場景(這里使用的是自帶場景)

載入時的場景布局:要將 Load 的 Image Type 修改為 Filled,Fill Method 修改為 Horizontal

具體代碼如下:

 1 using System.Collections;
 2 using UnityEngine;
 3 using UnityEngine.SceneManagement;
 4 using UnityEngine.UI;
 5 
 6 public class Slider : MonoBehaviour
 7 {
 8     private AsyncOperation aync;
 9     public Image load; // 進度條的圖片
10     private int culload = 0; // 已加載的進度
11     public Text loadtext; // 百分制顯示進度
12 
13     void Start()
14     {
15         StartCoroutine("LoadScence");
16     }
17 
18     // 定義一個迭代器,每一幀返回一次當前的載入進度,同時關閉自動的場景跳轉
19     // 因為LoadScenceAsync每幀加載一部分游戲資源,每次返回一個有跨越幅度的progress進度值
20     // 當游戲資源加載完畢后,LoadScenceAsync會自動跳轉場景,所以並不會顯示進度條達到了100%
21     // 關閉自動場景跳轉后,LoadSceneAsync只能加載90%的場景資源,剩下的10%場景資源要在開啟自動場景跳轉后才加載
22     IEnumerator LoadScence()
23     {
24         aync = SceneManager.LoadSceneAsync("SampleScene");//SkillCD為要跳轉的場景
25         aync.allowSceneActivation = false;
26         yield return aync;
27     }
28 
29     void Update()
30     {
31         // 判斷是否有場景正在加載
32         if (aync == null)
33         {
34             return;
35         }
36         int progrssvalue = 0;
37         // 當場景加載進度在90%以下時,將數值以整數百分制呈現,當資源加載到90%時就將百分制進度設置為100,
38         if (aync.progress < 0.9f)
39         {
40             progrssvalue = (int)aync.progress * 100;
41         }
42         else
43         {
44             progrssvalue = 100;
45         }
46         // 每幀對進度條的圖片和Text百分制數據進行更改,為了實現數字的累加而不是跨越
47         if (culload < progrssvalue)
48         {
49             culload++;
50             load.fillAmount = culload / 100f;
51             loadtext.text = culload.ToString() + "%";
52         }
53         // 一旦進度到達100時,開啟自動場景跳轉,LoadSceneAsync會加載完剩下的10%的場景資源
54         if (culload == 100)
55         {
56             aync.allowSceneActivation = true;
57         }
58     }
59 }

實際載入效果:

 

 

 

 

 

*** |  以上內容僅為學習參考、學習筆記使用  | ***


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM