SceneLoader.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | using System.Collections; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; public class SceneLoader : MonoBehaviour { public GameObject LoaderUI; public Slider progressSlider; public void LoadScene( int index) { StartCoroutine(LoadScene_Coroutine(index)); } public IEnumerator LoadScene_Coroutine( int index) { progressSlider.value = 0; LoaderUI.SetActive( true ); AsyncOperation asyncOperation = SceneManager.LoadSceneAsync(1); asyncOperation.allowSceneActivation = false ; float progress = 0; while (!asyncOperation.isDone) { progress = Mathf.MoveTowards(progress, asyncOperation.progress, Time.deltaTime); progressSlider.value = progress; if (progress >= 0.9f) { progressSlider.value = 1; asyncOperation.allowSceneActivation = true ; } yield return null ; } } } |