SceneLoader.cs
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;
}
}
}