void Update() { if (Operation != null) { StackTime += Time.deltaTime; UI_Tools.Instance.ShowLoadingUI(Operation.progress); if (Operation.isDone == true) { CurrentState = NextState; ComplateLoad(CurrentState); Operation = null; NextState = eSceneType.SCENE_NONE; // Loding UI 삭제 UI_Tools.Instance.HideUI(eUIType.PF_UI_LOADING, true); } else { return; } } if (CurrentState == eSceneType.SCENE_NONE) { return; } if (NextState != eSceneType.SCENE_NONE && CurrentState != NextState) { DisableScene(CurrentState); if (IsAsyc) { // 비동기 로드 Operation = SceneManager.LoadSceneAsync(NextState.ToString("F")); StackTime = 0f; UI_Tools.Instance.ShowLoadingUI(0.0f); } else { SceneManager.LoadScene(NextState.ToString("F")); CurrentState = NextState; NextState = eSceneType.SCENE_NONE; ComplateLoad(CurrentState); } } }
public void UnloadScene(eSceneType eType) { if (false == IsLoadedScene(eType)) { return; } SceneManager.UnloadSceneAsync(eType.ToString()); }
public void LoadScene(eSceneType eType, LoadSceneMode eMode = LoadSceneMode.Single, bool bIsUseFade = false, Action <SHReply> pCallback = null) { if (null == pCallback) { pCallback = (SHReply pReply) => { }; } if (true == IsLoadedScene(eType)) { pCallback(new SHReply(new SHError(eErrorCode.Scene_Already_Loaded, "[LSH] Aleady Loaded Scene"))); return; } Action LoadScene = () => { Single.Coroutine.CachingWait(() => { SendEventToBeforeLoad(eType); Single.Coroutine.Async(SceneManager.LoadSceneAsync(eType.ToString(), eMode), (pAsync) => { if (true == bIsUseFade) { PlayFadeOut(() => pCallback(new SHReply())); } else { pCallback(new SHReply()); } SendEventToAfterLoad(eType); }); }); }; if (true == bIsUseFade) { PlayFadeIn(() => LoadScene()); } else { LoadScene(); } }
// 유틸 : 씬 로드 ( Change 방식 : GoTo 명령시 호출됨 ) AsyncOperation LoadScene(eSceneType eType, Action <bool> pComplate) { return(SetLoadPostProcess(pComplate, SceneManager.LoadSceneAsync(eType.ToString(), LoadSceneMode.Single))); }
public bool IsLoadedScene(eSceneType eType) { return(SceneManager.GetSceneByName(eType.ToString()).isLoaded); }