Пример #1
0
        public override BehaviourStatus Run(AITree tree, DataContext dataContext, BehaviourStatus status)
        {
            switch (status)
            {
            case BehaviourStatus.Call:
                if (count == subNodes.Count)
                {
                    return(BehaviourStatus.Failure);
                }
                tree.Call(subNodes[count]);
                return(BehaviourStatus.Running);

            case BehaviourStatus.Success:
                return(BehaviourStatus.Success);

            case BehaviourStatus.Failure:
                count++;
                return(Run(tree, dataContext, BehaviourStatus.Call));

            case BehaviourStatus.Running:
                throw new InvalidRunningCommand();

            default:
                throw new System.NotImplementedException();
            }
        }
Пример #2
0
 public override BehaviourStatus Run(AITree tree, DataContext dataContext, BehaviourStatus current)
 {
     if (current == BehaviourStatus.Call)
     {
         tree.Call(subNode);
     }
     return(BehaviourStatus.Running);
 }
Пример #3
0
 public override BehaviourStatus Run(AITree tree, DataContext dataContext, BehaviourStatus current)
 {
     if (current == BehaviourStatus.Call)
     {
         tree.Call(subNode);
     }
     else
     {
         Debug.Log(name + ": " + current);
     }
     if (current == BehaviourStatus.Call)
     {
         return(BehaviourStatus.Running);
     }
     else
     {
         return(current);
     }
 }
Пример #4
0
        public override BehaviourStatus Run(AITree tree, DataContext dataContext, BehaviourStatus current)
        {
            switch (current)
            {
            case BehaviourStatus.Success:
                return(BehaviourStatus.Failure);

            case BehaviourStatus.Failure:
                return(BehaviourStatus.Success);

            case BehaviourStatus.Call:
                tree.Call(subNode);
                return(BehaviourStatus.Running);

            case BehaviourStatus.Running:
                throw new InvalidRunningCommand();

            default:
                throw new System.NotImplementedException();
            }
        }