protected override void OnTransition(BehaviorInputData Input) { if (NeedExit_) { OnExit(Input, BehaviorRunningState.Error); } SetActiveNode(null); TerminalState_ = BehaviorTerminalState.Ready; NeedExit_ = false; }
protected override BehaviorRunningState OnTick(BehaviorInputData Input) { var State = BehaviorRunningState.Finish; if (TerminalState_ == BehaviorTerminalState.Ready) { OnEnter(Input); NeedExit_ = true; TerminalState_ = BehaviorTerminalState.Running; SetActiveNode(this); } if (TerminalState_ == BehaviorTerminalState.Running) { State = OnExecute(Input); SetActiveNode(this); if (State == BehaviorRunningState.Finish || State == BehaviorRunningState.Error) { TerminalState_ = BehaviorTerminalState.Finish; } } if (TerminalState_ == BehaviorTerminalState.Finish) { if (NeedExit_) { OnExit(Input, State); } TerminalState_ = BehaviorTerminalState.Ready; NeedExit_ = false; SetActiveNode(null); } return(State); }
public BehaviorTerminalNode() : base(string.Empty, null, null) { TerminalState_ = BehaviorTerminalState.Ready; NeedExit_ = false; }