protected override ENodeReturn OnUpdate(BehaviourTree tree)
        {
            ENodeReturn result = ENodeReturn.Failure;

            while (mCurrentNodeIndex < NodeList.Count)
            {
                result = NodeList[mCurrentNodeIndex].Run(tree);
                if (ENodeReturn.Failure != result)
                {
                    break;
                }
                else
                {
                    mCurrentNodeIndex++;
                }
            }

//             if (mCurrentNodeIndex >= NodeList.Count)
//             {
//                 result = ENodeReturn.Failure;
//             }
//             else
//             {
//                 result = NodeList[mCurrentNodeIndex].Run(tree);
//                 if(ENodeReturn.Failure == result)
//                 {
//                     mCurrentNodeIndex++;
//                     result = ENodeReturn.Running;
//                 }
//             }
            return(result);
        }
        protected override ENodeReturn OnUpdate(BehaviourTree tree)
        {
            ENodeReturn result = ChildNode.Run(tree);

            if (result != ENodeReturn.Running)
            {
                result = ENodeReturn.Success;
            }
            return(result);
        }
Example #3
0
        public ENodeReturn Run(BehaviourTree tree)
        {
            if (!mIsRunning)
            {
                OnEnter(tree);
                mIsRunning = true;
            }
            ENodeReturn result = OnUpdate(tree);

            if (result != ENodeReturn.Running)
            {
                OnExit(tree);
                mIsRunning = false;
            }
            return(result);
        }
Example #4
0
        protected override ENodeReturn OnUpdate(BehaviourTree tree)
        {
            ENodeReturn rt = RootNode.Run(tree);

            return(rt);
        }