Ejemplo n.º 1
0
        protected void Run()
        {
            if (!CurrentStateNode || !wasInitialized)
            {
                return;
            }

            CurrentStateNode.StateMachine = this;
            CurrentStateNode.UpdateActions(this);
            CurrentStateNode.CheckTransitions(this);
        }
Ejemplo n.º 2
0
        public void ChangeState(StateNode nextStateNode)
        {
            if (!nextStateNode)
            {
                return;
            }

            CurrentStateNode.CheckTriggers(this, StateTrigger.OnStateExit);

            CurrentStateNode = nextStateNode;

            InitializeTransitionsData(nextStateNode);
            nextStateNode.CheckTriggers(this, StateTrigger.OnStateEnter);
        }
Ejemplo n.º 3
0
        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;
        }