public void PerformInterruption(Status interruptionStatus) { if (isRunning) { isInterrupted = true; returnStatus = interruptionStatus; BehaviourTree.Interrupt(Child); } }
private void Evaluate() { // Try to get a higher utility branch. int previousChild = highestUtilityChild; highestUtilityChild = HighestUtilityBranch(); // Found new higher utility. if (previousChild != highestUtilityChild) { BehaviourTree.Interrupt(GetChildAt(previousChild)); // Mark the interruption as a failure, so the select goes to next child. lastChildExitStatus = Status.Failure; } }