public void SetStartLevelLoad(AsyncOperation asy, DelegateOnLevelLoadComplete callbackFun) { asyncLoad = asy; progressCurrentTime = 0.0f; if (callbackFun != null) { levelLoadCompleteFuntion += callbackFun; } }
protected virtual void Update() { if (asyncLoad != null) { if (asyncLoad.isDone) { asyncLoad = null; progressBar.SetProgressBar(1.0f, true); if (levelLoadCompleteFuntion != null) { levelLoadCompleteFuntion(); levelLoadCompleteFuntion = null; } return; } float realProgressValue = asyncLoad.progress; //计算虚拟进度条 progressCurrentTime += Time.deltaTime; float virtualProgressValue = UnityEngine.Mathf.Lerp(0.0f, 1.0f, progressCurrentTime / virtualProgressTime); progressBar.SetProgressBar( virtualProgressValue * (1.0f - realProgressRate) + realProgressValue * realProgressRate, true); } }