protected void UpdateState(TState nextState) { //Debug.Log($"STATE: {nextState}"); if (StaticMethods.EnumEquals(currentState, nextState)) { return; } var existsInNodes = nodes.TryGetValue(nextState, out var nextNode); if (!existsInNodes) { Debug.LogError($"Trying to transition to nonexistent state node: {nextState}"); return; } currentNode.Exit(nextState); currentNode = nextNode; currentNode.Enter(currentState); currentState = nextState; }
protected virtual void ResetState() { currentNode = nodes[currentState]; currentNode.Enter(currentState); }