using UnityEngine; using System.Collections; using UnityEngine.UI; using UnityEngine.SceneManagement; public class Globe { public static string nextSceneName; } public class AsyncLoadScene : MonoBehaviour { public Text loadingText; public Image progressBar; private int curProgressValue = 0; private AsyncOperation operation; // Use this for initialization void Start() {
//加载的场景名称 Globe.nextSceneName = "Main_Day"; if (SceneManager.GetActiveScene().name == "Main") { //启动协程 StartCoroutine(AsyncLoading()); } } IEnumerator AsyncLoading() { operation = SceneManager.LoadSceneAsync(Globe.nextSceneName); Debug.Log(operation.progress); //阻止当加载完成自动切换 operation.allowSceneActivation = false; yield return operation; } void Update() { curProgressValue = (int)(operation.progress * 100); loadingText.text = curProgressValue + "%";//实时更新进度百分比的文本显示 progressBar.fillAmount = curProgressValue / 100f;//实时更新滑动进度图片的fillAmount值 //operation.progress 在这最大值为0.89(有的是0.9) if (operation.progress >=0.89) { operation.allowSceneActivation = true;//启用自动加载场景 } } }
原文:https://www.cnblogs.com/DGJS/p/12197785.html