public void Update() { bool validTransition = false; foreach(Transition t in activeState.transitions) { if (t.isValid()) { Debug.Log("changing state"); activeState.onExit(); activeState = t.nextState; activeState.onEnter(); validTransition = true; break; } } if (!validTransition) activeState.Update(); }