public void Update() { if (_currentState == null) { return; } /* SWITCH STATE IF NEEDED */ if (_currentState.IsReadyForStateSwitch) { var previousState = _currentState; _currentState = _currentState.TargetSwitchState; _uiManager.ClearUi(); previousState.TearDown(); _unity.ResetDelayedActions(); _currentState.Initialize(); } /* UPDATE STATE */ _currentState.Update(); _currentState.HandleInput(); }