public override void UpdateState() { if (_loadingOp.isDone && !_isLoadFinish) { _isLoadFinish = true; string sceneName = string.Empty; sceneName = GameStateHelper.SetSceneName(GameStateManager.Instance.NextState); _nextOp = SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Additive); sceneName = GameStateHelper.SetSceneName(GameStateManager.Instance.PreviousState); _prevOp = SceneManager.UnloadSceneAsync(sceneName); } if (_nextOp != null && _prevOp != null && _isLoadFinish && !_isUnloadFinish) { if (_prevOp.isDone && _nextOp.isDone) { _loadingOp = SceneManager.UnloadSceneAsync("Loading"); _isUnloadFinish = true; } } if (_loadingOp.isDone && _isLoadFinish && _isUnloadFinish) { GameStateManager.Instance.ChangeState(GameStateManager.Instance.NextState); } }