IEnumerator LoadScene(string vSceneName, ChangeSceneOver vChangeOver) { // modify by Conglin //Application.LoadLevelAsync(vSceneName); mLoadingState = UnityEngine.SceneManagement.SceneManager.LoadSceneAsync(vSceneName, UnityEngine.SceneManagement.LoadSceneMode.Single); //ResourceLoadManager.Instance.UnloadDependAB(); if (null == mLoadingState) { yield break; } else { _BeforeSceneName = _NowSceneName; _NowSceneName = vSceneName; HintManager.Instance.OpenLoad(); } _crrentSceneState = LoadSceneState.Loading; while (!mLoadingState.isDone) { yield return(0); } if (ChangeOver != null) { ChangeOver(vSceneName); ChangeOver -= vChangeOver; } PlayerSceneMusic(vSceneName); _crrentSceneState = LoadSceneState.NotLoading; HintManager.Instance.CloseLoad(); mLoadingState = null; }
public void ChangeState(LoadSceneState loadSceneState) { // change fsm if (loadSceneState != levelLoadState) { levelLoadState = loadSceneState; // do stuff based on state change or fire and event. } }