コード例 #1
0
 private TaskState RunSequence(BehaviourParentTask parentTask)
 {
     if (parentTask.CanExecute())
     {
         TaskState state = RunTask(parentTask.GetChild(parentTask.CurrentChildIndex()));
         if (state == TaskState.Success || state == TaskState.Failure)
         {
             parentTask.OnChildExecuted(state);
         }
         return(state);
     }
     parentTask.OnReset();
     return(TaskState.Failure);
 }
コード例 #2
0
        private TaskState RunParentTask(BehaviourParentTask parentTask)
        {
            switch (parentTask)
            {
            case BehaviourWeightSelector weightSelector:
                return(RunWeightSelector(weightSelector));

            case BehaviourSelectorEvaluator selectorEvaluator:
                return(RunSelectorEvaluator(selectorEvaluator));

            case BehaviourSelector selector:
                return(RunSelector(selector));

            case BehaviourSequence sequence:
                return(RunSequence(sequence));

            default:
                throw new Exception("Unknown " + parentTask + " Precess Mode");
            }
        }