removeSubgoal
函数是Yuka js库中的一个方法,用于从一个行为树中移除一个子目标节点。
behaviorTree.removeSubgoal( subgoal )
subgoal
(必填):要移除的子目标节点的引用。removeSubgoal
函数没有返回值。
const behaviorTree = new BehaviorTree();
const moveToPlayer = new MoveToPlayer();
const attackPlayer = new AttackPlayer();
behaviorTree.root = new Selector([
moveToPlayer,
new Sequence([
new Inverter(new CanSeePlayer()),
attackPlayer
])
]);
behaviorTree.removeSubgoal(moveToPlayer);
上述示例中,首先我们创建了一个新的行为树,然后向其添加两个子节点:moveToPlayer
和attackPlayer
。然后创建了一个选择器节点,作为行为树的根节点,用于选择一个子节点来执行。其中选择器的第一个子节点为moveToPlayer
节点,第二个子节点为一个序列节点,该序列节点包含一个取反器节点和一个attackPlayer
节点。
最后,我们调用removeSubgoal
函数移除掉了moveToPlayer
节点。移除后的行为树中只剩下一个选择器节点,该节点会根据条件选择是否执行attackPlayer
节点。