using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class Loading : MonoBehaviour {
public Slider m_Slider; //进度条
public Text m_Text; //文本区
void Start()
{
StartCoroutine(StartLoading());
}
private IEnumerator StartLoading()
{
int displayProgress = 0; //当前展示进度
int toProgress = 0; //总进度
AsyncOperation op = SceneManager.LoadSceneAsync(Global.GetInstance().loadingName); //采用异步加载的方式
op.allowSceneActivation = false;
while (op.progress<0.9f)
{
toProgress = (int)op.progress * 100;
while (displayProgress < toProgress)
{
displayProgress++;
SetLoadingPercentage(displayProgress);
yield return new WaitForEndOfFrame();
}
}
toProgress = 100;
while (displayProgress < toProgress)
{
displayProgress++;
SetLoadingPercentage(displayProgress);
yield return new WaitForEndOfFrame();
}
op.allowSceneActivation = true;
}
public void SetLoadingPercentage(int DisplayProgress)
{
m_Slider.value = DisplayProgress * 0.01f;
m_Text.text = DisplayProgress.ToString() + "%";
}
}
Global
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Global : MonoBehaviour {
private static Global instance;
public static Global GetInstance()
{
if (instance == null)
{
instance = new Global();
}
return instance;
}
public string loadingName = "VRChessMap";
}