UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BTTaskNode.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "BTTaskNode.generated.h"
8
9class UBTService;
10
16
32UCLASS(Abstract, MinimalAPI)
34{
36
37
41
42 AIMODULE_API virtual uint16 GetSpecialMemorySize() const override;
43
44protected:
49
51 AIMODULE_API void SetNextTickTime(uint8* NodeMemory, float RemainingTime) const;
52
53public:
54#if WITH_EDITOR
55 AIMODULE_API virtual FName GetNodeIconName() const override;
56#endif // WITH_EDITOR
57 AIMODULE_API virtual void OnGameplayTaskDeactivated(UGameplayTask& Task) override;
58
60 AIMODULE_API void ReceivedMessage(UBrainComponent* BrainComp, const FAIMessage& Message);
61
63 AIMODULE_API EBTNodeResult::Type WrappedExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) const;
64
66 AIMODULE_API EBTNodeResult::Type WrappedAbortTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) const;
67
74 AIMODULE_API bool WrappedTickTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory, float DeltaSeconds, float& NextNeededDeltaTime) const;
75
77 AIMODULE_API void WrappedOnTaskFinished(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory, EBTNodeResult::Type TaskResult) const;
78
80 AIMODULE_API void FinishLatentTask(UBehaviorTreeComponent& OwnerComp, EBTNodeResult::Type TaskResult) const;
81
83 AIMODULE_API void FinishLatentAbort(UBehaviorTreeComponent& OwnerComp) const;
84
86 bool ShouldIgnoreRestartSelf() const;
87
89 UPROPERTY()
91
93
95 UPROPERTY(EditAnywhere, Category=Task)
96 uint32 bIgnoreRestartSelf : 1;
97
99 uint32 bNotifyTick : 1;
100
102 uint32 bNotifyTaskFinished : 1;
103
108 AIMODULE_API virtual void TickTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory, float DeltaSeconds);
109
112 AIMODULE_API virtual void OnMessage(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory, FName Message, int32 RequestID, bool bSuccess);
113
118 AIMODULE_API virtual void OnTaskFinished(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory, EBTNodeResult::Type TaskResult);
119
121 AIMODULE_API void WaitForMessage(UBehaviorTreeComponent& OwnerComp, FName MessageType) const;
122 AIMODULE_API void WaitForMessage(UBehaviorTreeComponent& OwnerComp, FName MessageType, int32 RequestID) const;
123
125 AIMODULE_API void StopWaitingForMessages(UBehaviorTreeComponent& OwnerComp) const;
126
127 template<typename TickTask, typename OnTaskFinished>
128 void InitNotifyFlags(TickTask, OnTaskFinished)
129 {
130 bNotifyTick = !std::is_same_v<decltype(&UBTTaskNode::TickTask), TickTask>;
131 bNotifyTaskFinished = !std::is_same_v<decltype(&UBTTaskNode::OnTaskFinished), OnTaskFinished>;
132 }
133
136};
137
138#define INIT_TASK_NODE_NOTIFY_FLAGS() \
139 do { \
140 using NodeType = TRemovePointer<decltype(this)>::Type; \
141 InitNotifyFlags(&NodeType::TickTask, &NodeType::OnTaskFinished); \
142 } while (false)
143
145{
146 return bIgnoreRestartSelf;
147}
bool bSuccess
Definition ConvexDecomposition3.cpp:819
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NameTypes.h:617
Definition Array.h:670
Definition BTNode.h:48
Definition BTService.h:35
Definition BTTaskNode.h:34
uint8 bTickIntervals
Definition BTTaskNode.h:135
uint32 bIgnoreRestartSelf
Definition BTTaskNode.h:96
virtual AIMODULE_API void TickTask(UBehaviorTreeComponent &OwnerComp, uint8 *NodeMemory, float DeltaSeconds)
Definition BTTaskNode.cpp:157
virtual AIMODULE_API void OnTaskFinished(UBehaviorTreeComponent &OwnerComp, uint8 *NodeMemory, EBTNodeResult::Type TaskResult)
Definition BTTaskNode.cpp:162
bool ShouldIgnoreRestartSelf() const
Definition BTTaskNode.h:144
Definition BehaviorTreeComponent.h:105
Definition BrainComponent.h:118
Definition GameplayTask.h:146
Definition BehaviorTreeTypes.h:84
Type
Definition BehaviorTreeTypes.h:87
Definition BrainComponent.h:27
Definition BTNode.h:34
Definition BTTaskNode.h:12
float AccumulatedDeltaTime
Definition BTTaskNode.h:14
float NextTickRemainingTime
Definition BTTaskNode.h:13
Definition ObjectPtr.h:488