public void SetState(UnitState unitState) { if (currentState != null) { currentState.OnStateExit(); } currentState = unitState; if (currentState != null) { currentState.OnStateEnter(); } }
public void ChangeState(UnitState nextState) { if (!IsBusy) { GridTile current = _currentState.CurrentTile; _currentState.OnStateExit(); _currentState = nextState; NextLoggedState = null; _currentState.CurrentTile = current; _currentState.OnStateEnter(); } else { NextLoggedState = nextState; } }