private IEnumerator Wait(ElevatorBaseState state)
    {
        yield return(wait);

        currentState = state;
        currentState.EnterState(this);
    }
    void Start()
    {
        foreach (Transform elevatorFloor in elevatorFloorStops)
        {
            positions.Add(elevatorFloor.localPosition);
        }
        posA = positions[0];
        posB = positions[1];

        TransitionToState(StoppedState);
        nextState = MovingUpState;
    }
 public void DelayedTransition(ElevatorBaseState state)
 {
     StartCoroutine(Wait(state));
 }
 public void TransitionToState(ElevatorBaseState state)
 {
     currentState = state;
     currentState.EnterState(this);
 }