- 最后登录
- 2016-10-1
- 注册时间
- 2013-12-28
- 阅读权限
- 90
- 积分
- 5805
- 纳金币
- 2954
- 精华
- 3
|
参考了网上大神的做法,做了一点小改动,效果还不错,给大家分享。
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;
} |
|