CompositeGoal
的failed
方法用于处理子目标(SubGoal
)失败的情况。当子目标失败时,CompositeGoal
将根据设定的策略执行相应操作,并将失败状态传递给父目标(ParentGoal
)。
failed()
无返回值。
const steeringBehaviors = new Yuka.CompositeGoal();
steeringBehaviors.addSubGoal(new Yuka.ArriveGoal(agent, target));
// [...]
if(agent.isInPursuitMode){
// 如果处于追逐状态,则直接失败
steeringBehaviors.failed();
} else {
// 否则切换到追逐状态
agent.isInPursuitMode = true;
steeringBehaviors.removeAllSubGoals();
steeringBehaviors.addSubGoal(new Yuka.PursuitGoal(agent, target));
}
无异常抛出。
CompositeGoal
的failed
方法仅在子目标失败时被调用,不应在其他情况下调用。CompositeGoal
提供了有关失败处理的不同策略,包括重试、重置和跳过,应根据具体需要设置相应策略。如果没有定义策略,则默认操作是使父目标接收到失败信号。failed
方法不影响当前目标的状态,因此需要根据策略进行进一步处理才能继续向下执行。