public void ChangeState(State <T> newState) { if (currentState != null) { currentState.Exit(); } currentState = newState; currentState.Init(this, refScript); DebugMessage("Entering"); currentState.Enter(); DebugMessage(newState.GetType().Name); }