protected override Status OnUpdate() { // update running node if previous status is Running. if (runningNode != null) { return(HandleStatus(runningNode.Update(), runningNode)); } var target = Children[targetIndex]; return(HandleStatus(target.Update(), target)); }
protected override Status OnUpdate() { // update running node if previous status is Running. if (runningNode != null) { if (abortOnConditionChanged && IsConditionChanged(runningNode)) { runningNode.Abort(); return(UpdateWhileFailure(0)); } var currentOrder = Children.IndexOf(runningNode); var status = runningNode.Update(); if (status == Status.Failure) { // update next nodes return(UpdateWhileFailure(currentOrder + 1)); } return(HandleStatus(status, runningNode)); } return(UpdateWhileFailure(0)); }