protected void Run() { if (!CurrentStateNode || !wasInitialized) { return; } CurrentStateNode.StateMachine = this; CurrentStateNode.UpdateActions(this); CurrentStateNode.CheckTransitions(this); }
public void ChangeState(StateNode nextStateNode) { if (!nextStateNode) { return; } CurrentStateNode.CheckTriggers(this, StateTrigger.OnStateExit); CurrentStateNode = nextStateNode; InitializeTransitionsData(nextStateNode); nextStateNode.CheckTriggers(this, StateTrigger.OnStateEnter); }
protected void Initialize() { if (!CurrentStateNode) { if (stateMachineGraph) { CurrentStateNode = stateMachineGraph.TryGetNoInputNode <StateNode>(); } if (!CurrentStateNode) { return; } } InitializeTransitionsData(CurrentStateNode); CurrentStateNode.CheckTriggers(this, StateTrigger.OnMachineStart); CurrentStateNode.CheckTriggers(this, StateTrigger.OnStateEnter); wasInitialized = true; }