public void ResetState() { if (currentState != null) { if (currentState is EvaluatingState) { var state = currentState as EvaluatingState; if (state.PlayerPassed) { var playerData = LevelManager.Instance.PlayerData; playerData.levelIndex -= 1; playerData.Save(); } SetState(null); CreateOrChangeToNextState(); } else { currentState.Reset(); } } }