Unity 非同步載入進度條
阿新 • • 發佈:2018-12-26
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 }