public void ChangeState(StateType stateType) { foreach (var item in statesList) { if (item.stateType == stateType) { if (currentState != null && IsCanChange) { currentState.OnExit(); currentState = item; currentState.OnEnter(); } else if (currentState == null) { currentState = item; currentState.OnEnter(); } } } }