public void Transition(MenuStages currentStage, MenuStages nextStage) { _currentStage = currentStage; _nextStage = nextStage; if (_state == TransitionState.Idle) { // Only allow transitions to start from idle _state = TransitionState.FadeIn; } else { Debug.LogError("Attempting to transition stages while a transition is already happening!"); } }
// Transition TO Black private void FadeInComplete() { GameObject currentStageGameObject = GetStageGameObject(_currentStage); GameObject nextStageGameObject = GetStageGameObject(_nextStage); if (currentStageGameObject != null && nextStageGameObject != null) { currentStageGameObject.SetActive(false); nextStageGameObject.SetActive(true); // Update stage states _currentStage = _nextStage; _nextStage = MenuStages.None; } _state = TransitionState.FadeOut; }
private GameObject GetStageGameObject(MenuStages stage) { switch (stage) { case MenuStages.MainMenu: { return(_mainMenu); } case MenuStages.JoinHost: { return(_joinHost); } case MenuStages.RoomName: { return(_roomName); } default: return(null); } }