- Editor starts.
PrintHelloBP
is executed.TargetActor
is successfully found (e.g.,BP_Player
).- The
HasTarget
decorator allows the node to execute. - The
MoveTo
task inside theHasTarget
sequence finishes, and then the followingWait
node begins. - During the wait (about 2 seconds in),
TargetActor
becomesnullptr
. - However, the
Wait (5s)
still completes (because the decorator uses “Observer Aborts: Lower Priority”).
Expected behavior:
Since the HasTarget
decorator uses “Lower Priority”, I expected all the subsequent nodes in the same Sequence — including PrintByeBP
— to be skipped, and for the tree to restart from the top (starting from PrintHelloBP
again).
Actual behavior:
The top-level Sequence
continues executing after the Selector
, and the next node (PrintByeBP
) runs as usual. “Bye” is printed.
Question:
So, is this the expected behavior?
My guess is that the Selector
returns success, which allows the rest of the Sequence
to continue. The sequence that had the HasTarget
decorator finishes (because Wait
completes), and thus the entire Selector
is considered successful.
But I expected that since the HasTarget
decorator uses “Lower Priority”, all the nodes under that part of the tree (with the blue border) would be aborted and skipped once TargetActor
becomes nullptr
.
Did I miss something here?