AsyncOperation mAsync; //需要加载的场景
public UISlider LoadingSlider; //NGUI做的
public UILabel GameTip;
// Use this for initialization
void OnEnable()
{
StartCoroutine("LoadScene");
GameTip.text = GameTipsController.Singleton.RandomTip();
}
void OnDisable()
{
StopAllCoroutines();
}
// Update is called once per frame
void Update()
{
}
IEnumerator LoadScene()
{
int displayProgress = 0;
int toProgress = 0;
mAsync = Application.LoadLevelAsync(StaticDataCache.Singleton.CurLoadScene);
mAsync.allowSceneActivation = false;
Debug.Log(mAsync.progress);
while (mAsync.progress < 0.9f)
{
toProgress = (int)mAsync.progress * 100;
while (displayProgress < toProgress)
{
++displayProgress;
SetLoadingSlider(displayProgress);
yield return new WaitForEndOfFrame() ;
}
yield return new WaitForEndOfFrame();
}
toProgress = 100;
while (displayProgress < toProgress)
{
++displayProgress;
SetLoadingSlider(displayProgress);
yield return new WaitForEndOfFrame();
}
mAsync.allowSceneActivation = true;
gameObject.SetActive(false);
}
void SetLoadingSlider(int progress)
{
float tmp = (float)((float)progress / 100);
LoadingSlider.value = tmp;
}