//! 씬을 제거한다 public void RemoveScene(ESceneIndex a_eSceneIndex, System.Action <AsyncOperation, bool> a_oCallback) { var oScenePath = SceneUtility.GetScenePathByBuildIndex((int)a_eSceneIndex); this.RemoveScene(oScenePath, a_oCallback); }
private IEnumerator ieLoadScene(ESceneIndex index) { updateNextScene(); var loadScreen = GCanvasController.instance.setupLoadCanvas(); m_LoadProgress = 0f; // unload prev scene if (SceneManager.sceneCount == 2) { var currentScene = SceneManager.GetSceneAt(1); if (currentScene != null) { yield return(ieUnloadScene(currentScene)); } } m_ActiveScene = index; var operation = SceneManager.LoadSceneAsync((int)index, LoadSceneMode.Additive); operation.allowSceneActivation = false; // Load new scene while (operation.progress < 0.9f) { m_LoadProgress = Mathf.Lerp(0.4f, 0.9f, operation.progress); yield return(null); } operation.allowSceneActivation = true; m_LoadProgress = 1.0f; yield return(new WaitUntil(delegate { return operation.isDone; })); GCanvasController.instance.removeFromCover(loadScreen); yield return(null); }
//! 씬을 전환한다 public void ChangeScene(ESceneIndex a_eSceneIndex, System.Action <AsyncOperation, bool> a_oCallback, float a_fDelay = 0.0f, LoadSceneMode a_eLoadSceneMode = LoadSceneMode.Single) { var oScenePath = SceneUtility.GetScenePathByBuildIndex((int)a_eSceneIndex); this.ChangeScene(oScenePath, a_oCallback, a_fDelay, a_eLoadSceneMode); }
void Start() { if (SceneManager.sceneCount != 2) { LoadNextScene(false); } else { m_ActiveScene = (ESceneIndex)SceneManager.GetSceneAt(1).buildIndex; } }
public void updateNextScene() { switch (m_NextScene) { case ESceneIndex.Menu: { m_NextScene = ESceneIndex.Sleep; break; } case ESceneIndex.Sleep: { m_NextScene = ESceneIndex.Road; m_IsLastSceneHome = true; break; } case ESceneIndex.Road: { if (m_IsLastSceneHome) { m_NextScene = ESceneIndex.Work; } else { m_NextScene = ESceneIndex.Sleep; } break; } case ESceneIndex.Work: { m_NextScene = ESceneIndex.Road; m_IsLastSceneHome = false; break; } } }
public void LoadSceneAsync(ESceneIndex index, bool animate) { StopAllCoroutines(); StartCoroutine(ieLoadScene(index)); }