1. 程式人生 > >Unity 非同步載入進度條

Unity 非同步載入進度條

 1 public class View_LoadingScene : MonoBehaviour
 2     {
 3         //場景載入進度條物件
 4         public GameObject loadingProgressBar;
 5         //進度條元件
 6         private Slider _loadingProgressBarComp;
 7         //當前進度值
 8         private float _curProgressValue = 0f;
 9 
10         private AsyncOperation _asyncOp;
11 private void Awake() 12 { 13 if(loadingProgressBar != null) 14 { 15 //獲取進度條元件 16 _loadingProgressBarComp = loadingProgressBar.GetComponent<Slider>(); 17 } 18 } 19 private void Start() 20 {
21 22 StartCoroutine("LoadingLevelAsync"); 23 } 24 private void Update() 25 { 26 //模擬載入進度 27 if(_loadingProgressBarComp.value <= 1f) 28 { 29 SimulateLoad(); 30 } 31 _loadingProgressBarComp.value = _curProgressValue;
32 33 } 34 35 private void SimulateLoad() 36 { 37 _curProgressValue += 0.01f; 38 } 39 40 //非同步載入核心函式 41 IEnumerator LoadingLevelAsync() 42 { 43 _asyncOp = SceneManager.LoadSceneAsync("2_LogonScene"); 44 _curProgressValue = _asyncOp.progress; 45 yield return _asyncOp; 46 } 47 }