public override BehaviorResult Exec(IBehaviorTree tree) { if (TargetNode == null) { return(BehaviorResult.failed); } SetStarting(); BehaviorResult result = TargetNode.Exec(tree); if (result == BehaviorResult.success) { SetCompleted(); return(BehaviorResult.success); } else if (result == BehaviorResult.failed) { SetFailed(); return(BehaviorResult.failed); } else if (result == BehaviorResult.running) { return(BehaviorResult.running); } SetAborted(); return(BehaviorResult.abort); }
public override BehaviorResult Exec(IBehaviorTree tree) { if (TargetNode == null) { //Debug.LogError("missing target node"); return(BehaviorResult.failed); } if (!Running) { if (OnPrecondition != null) { if (!OnPrecondition()) { return(BehaviorResult.failed); } } SetStarting(); } if (N == 0.0f) { N = tree.GameTime; } BehaviorResult result = TargetNode.Exec(tree); if (result == BehaviorResult.success) { SetCompleted(); N = 0.0f; return(BehaviorResult.success); } else if (result == BehaviorResult.failed) { SetFailed(); return(BehaviorResult.failed); } else if (result == BehaviorResult.running) { if (tree.GameTime - N < Interval) { return(BehaviorResult.running); } else { TargetNode.Abort(); N = 0.0f; return(BehaviorResult.failed); } } else { return(BehaviorResult.abort); } }
public override BehaviorResult Exec(IBehaviorTree tree) { if (TargetNode == null) { return(BehaviorResult.failed); } if (!Running) { if (OnPrecondition != null) { if (!OnPrecondition()) { return(BehaviorResult.failed); } } SetStarting(); } while (true) { if (N == 0.0f) { N = tree.GameTime; } while (tree.GameTime - N < CDTime) { return(BehaviorResult.running); } BehaviorResult result = TargetNode.Exec(tree); if (result == BehaviorResult.success) { Reset(); } else if (result == BehaviorResult.failed) { Reset(); } else if (result == BehaviorResult.running) { return(BehaviorResult.running); } } }
public override BehaviorResult Exec(IBehaviorTree tree) { if (TargetNode == null) { // Debug.LogError("missing target node"); return(BehaviorResult.failed); } if (!Running) { if (OnPrecondition != null) { if (!OnPrecondition()) { return(BehaviorResult.failed); } } SetStarting(); } while (true) { BehaviorResult result = TargetNode.Exec(tree); if (result == BehaviorResult.success) { SetCompleted(); return(BehaviorResult.success); } else if (result == BehaviorResult.running) { return(BehaviorResult.running); } else if (result == BehaviorResult.failed) { return(BehaviorResult.running); } } }
public override BehaviorResult Exec(IBehaviorTree tree) { if (TargetNode == null) { return(BehaviorResult.failed); } SetStarting(); while (LoopCount < 0 || m_CounterLoop < LoopCount) { BehaviorResult result = TargetNode.Exec(tree); if (result == BehaviorResult.success) { if (LoopCount > 0) { m_CounterLoop++; } //return BehaviorResult.running; } else if (result == BehaviorResult.failed) { if (LoopCount > 0) { m_CounterLoop++; } } else if (result == BehaviorResult.running) { //return BehaviorResult.running; } return(BehaviorResult.running); } SetCompleted(); return(BehaviorResult.success); }