UBehaviorTreeComponent::UnregisterMessageObserversFrom
#include "BehaviorTree/BehaviorTreeComponent.h"
Access: public
Description
Removes all message observers previously registered for the given task via RegisterMessageObserver. Called automatically when a task finishes or aborts.
Caveats & Gotchas
- • An overload taking an FBTNodeIndex exists for removing observers by execution index when you don't have the live UBTTaskNode pointer, e.g. during tree cleanup.
- • Safe to call even if no observers were registered for the task — it's a no-op in that case.
- • Does not cancel whatever async operation the task was waiting on, it only stops routing messages back to the tree.
Signature
void UnregisterMessageObserversFrom(const UBTTaskNode* TaskNode); Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| TaskNode | const UBTTaskNode* | Task whose registered message observers should be removed. | — |
Return Type
void Example
Clear observers when a task finishes C++
void UBTTask_WaitForSignal::OnTaskFinished(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory, EBTNodeResult::Type TaskResult)
{
OwnerComp.UnregisterMessageObserversFrom(this);
Super::OnTaskFinished(OwnerComp, NodeMemory, TaskResult);
} Version History
Introduced in: 4.0
| Version | Status | Notes |
|---|---|---|
| 5.6 | stable | — |
Feedback
Was this helpful?