protected override int onUpdate(BehaviourTreeData wData) { TBTActionPrioritizedSelectorContext thisContext = getContext <TBTActionPrioritizedSelectorContext>(wData); int runningState = BehaviourTreeRunningStatus.FINISHED; if (thisContext.currentSelectedIndex != thisContext.lastSelectedIndex) { if (IsIndexValid(thisContext.lastSelectedIndex)) { BehaviourAction node = GetChild <BehaviourAction>(thisContext.lastSelectedIndex); node.Transition(wData); } thisContext.lastSelectedIndex = thisContext.currentSelectedIndex; } if (IsIndexValid(thisContext.lastSelectedIndex)) { BehaviourAction node = GetChild <BehaviourAction>(thisContext.lastSelectedIndex); runningState = node.Update(wData); if (BehaviourTreeRunningStatus.IsFinished(runningState)) { thisContext.lastSelectedIndex = -1; } } return(runningState); }
protected override void onTransition(BehaviourTreeData wData) { TBTActionPrioritizedSelectorContext thisContext = getContext <TBTActionPrioritizedSelectorContext>(wData); BehaviourAction node = GetChild <BehaviourAction>(thisContext.lastSelectedIndex); if (node != null) { node.Transition(wData); } thisContext.lastSelectedIndex = -1; }