//注意这里返回值一定是 IEnumerator IEnumerator loadScene() { int displayProgress = 0; int toProgress = 0; int randPro = UnityEngine.Random.Range(40, 70); while (!_realLoad) { while (displayProgress < randPro) //预加载 { ++displayProgress; SetProgressBar(displayProgress); yield return(_wait); } yield return(_wait); } CoreEntry.gSceneMgr.InitPools(MapMgr.Instance.GetCurSceneID()); if (ModuleServer.MS.GSkillCastMgr != null) { ModuleServer.MS.GSkillCastMgr.Disable(); } while (_sceneStep < 0.90f) { toProgress = (int)(_sceneStep * 100); while (displayProgress < toProgress) { ++displayProgress; SetProgressBar(displayProgress); yield return(_wait); } yield return(_wait); } MainPanelMgr.ClearTexture2D(); yield return(StartCoroutine(MainPanelMgr.LoadStreamTexture(ClientSetting.Instance.GetStringValue(string.Format("Bg_loading{0}", UnityEngine.Random.Range(0, 4))), "Bg_loading"))); toProgress = 100; while (displayProgress < toProgress) { ++displayProgress; SetProgressBar(displayProgress); yield return(_wait); } if (null != _sceneOperat) { _sceneOperat.allowSceneActivation = true; } CoreEntry.gEventMgr.TriggerEvent(GameEvent.GE_LOADSCENE_FINISH, EventParameter.Get(1)); SDKMgr.Instance.addBatchDataEvent(1, SG.Account.Instance.ServerId, "10230", " 加载场景完成" + strNextLevel); loadsceneFinished(); }
IEnumerator InitProcess() { WaitForEndOfFrame wait = new WaitForEndOfFrame(); InitUI.SetLoadTip("游戏资源加载中......"); float lastPercent = Random.Range(0.5f, 0.7f); float displayProgress = 0f; CoreEntry.gSceneMgr.PreloadScene("Scene/allMap/ui/RoleUI"); while (CoreEntry.gSceneMgr.SceneLoading) { while (displayProgress < lastPercent) //预加载 { displayProgress += 0.1f; InitUI.SetProgress(displayProgress); yield return(wait); } yield return(wait); } lastPercent = 0.99f; CoreEntry.gSceneMgr.PreloadScene("Scene/allMap/ui/LoginUI"); while (CoreEntry.gSceneMgr.SceneLoading) { while (displayProgress < lastPercent) //预加载 { displayProgress += 0.2f; InitUI.SetProgress(displayProgress); yield return(wait); } yield return(wait); } InitUI.SetProgress(1); yield return(StartCoroutine(MainPanelMgr.LoadStreamTexture(ClientSetting.Instance.GetStringValue("BackLogin"), string.Empty))); yield return(StartCoroutine(MainPanelMgr.LoadStreamTexture(ClientSetting.Instance.GetStringValue("LoginLogo2"), string.Empty))); yield return(StartCoroutine(MainPanelMgr.LoadStreamTexture(ClientSetting.Instance.GetStringValue(string.Format("Bg_loading{0}", UnityEngine.Random.Range(0, 4))), "Bg_loading"))); MapMgr.Instance.EnterLoginScene(); }
IEnumerator InitProcess() { WaitForEndOfFrame wait = new WaitForEndOfFrame(); float gap = 0.05f; float time = 0.0f; float lastTime = Time.realtimeSinceStartup; float configPercent = Random.Range(0.8f, 0.9f); if (AppConst.UseAssetBundle) { configPercent = Random.Range(0.3f, 0.5f); } while (!m_LuaInitCall()) { time += Time.realtimeSinceStartup - lastTime; if (time > gap) { lastTime = Time.realtimeSinceStartup; time = 0; InitUI.SetProgress(m_LuaGetInitProCall() * configPercent); yield return(wait); } } m_LuaInitCall = null; m_LuaGetInitProCall = null; yield return(wait); InitUI.SetLoadTip("游戏资源加载中......"); float lastPercent = configPercent + (1 - configPercent) * 0.5f; float displayProgress = configPercent; CoreEntry.gSceneMgr.PreloadScene("Scene/allMap/ui/RoleUI"); while (CoreEntry.gSceneMgr.SceneLoading) { while (displayProgress < lastPercent) //预加载 { displayProgress += 0.005f; InitUI.SetProgress(displayProgress); yield return(wait); } yield return(wait); } lastPercent = 0.99f; CoreEntry.gSceneMgr.PreloadScene("Scene/allMap/ui/LoginUI"); while (CoreEntry.gSceneMgr.SceneLoading) { while (displayProgress < lastPercent) //预加载 { displayProgress += 0.01f; InitUI.SetProgress(displayProgress); yield return(wait); } yield return(wait); } InitEnd(); InitUI.SetProgress(1); yield return(StartCoroutine(MainPanelMgr.LoadStreamTexture(ClientSetting.Instance.GetStringValue("BackLogin"), string.Empty))); yield return(StartCoroutine(MainPanelMgr.LoadStreamTexture(ClientSetting.Instance.GetStringValue("LoginLogo2"), string.Empty))); yield return(StartCoroutine(MainPanelMgr.LoadStreamTexture(ClientSetting.Instance.GetStringValue(string.Format("Bg_loading{0}", UnityEngine.Random.Range(0, 4))), "Bg_loading"))); MapMgr.Instance.EnterLoginScene(); }