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(); } }
public override BehaviourStatus Run(AITree tree, DataContext dataContext, BehaviourStatus current) { if (current == BehaviourStatus.Call) { tree.Call(subNode); } return(BehaviourStatus.Running); }
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); } }
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(); } }