void Update()
 {
     if (currentState != currentState.GetNextState())
     {
         currentState.End();
         currentState = currentState.GetNextState();
         currentState.Start();
     }
     currentState.Update();
 }