public void ChangeState(FSMState <T> newState) { if (newState != null) { if (current != null) { current.End(owner, this); } current = newState; current.Begin(owner, this); } }