Esempio n. 1
0
        public void Tick()
        {
            CallOnEnterOnQueuedNodes();
            var index  = traversal.Peek();
            var node   = tree.Nodes[index];
            var status = node.Run();

            LastExecutedStatus = status;

#if UNITY_EDITOR
            node.StatusEditorResult = (BTNode.EStatusEditor)status;
#endif

            if (status != BTNode.EStatus.Running)
            {
                PopNode();
                OnChildExit(node, status);
            }

            if (traversal.Count == 0)
            {
                onDone?.Invoke();

                __debug("iterator done!");
            }
        }
Esempio n. 2
0
 private void OnChildExit(BTNode node, BTNode.EStatus status)
 {
     if (node.Parent != null)
     {
         node.Parent.OnChildExit(node.childOrder, status);
         LastChildExitStatus = status;
     }
 }