UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BTAuxiliaryNode.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 "BTAuxiliaryNode.generated.h"
8
14
29UCLASS(Abstract, MinimalAPI)
31{
33
34
35 AIMODULE_API void WrappedOnBecomeRelevant(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) const;
36
38 AIMODULE_API void WrappedOnCeaseRelevant(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) const;
39
46 AIMODULE_API bool WrappedTickNode(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory, float DeltaSeconds, float& NextNeededDeltaTime) const;
47
48 AIMODULE_API virtual void DescribeRuntimeValues(const UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory, EBTDescriptionVerbosity::Type Verbosity, TArray<FString>& Values) const override;
49 AIMODULE_API virtual uint16 GetSpecialMemorySize() const override;
50
52 AIMODULE_API void InitializeParentLink(uint8 InChildIndex);
53
55 AIMODULE_API const UBTNode* GetMyNode() const;
56
58 uint8 GetChildIndex() const;
59
64 AIMODULE_API float GetNextNeededDeltaTime(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) const;
65
66protected:
67
70
73
76
79
82
88
93 AIMODULE_API virtual void OnCeaseRelevant(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory);
94
99 AIMODULE_API virtual void TickNode(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory, float DeltaSeconds);
100
102 AIMODULE_API void SetNextTickTime(uint8* NodeMemory, float RemainingTime) const;
103
105 AIMODULE_API float GetNextTickRemainingTime(uint8* NodeMemory) const;
106
107 template<typename TickNode, typename OnBecomeRelevant, typename OnCeaseRelevant>
108 void InitNotifyFlags(TickNode, OnBecomeRelevant, OnCeaseRelevant)
109 {
110 bNotifyTick = !std::is_same_v<decltype(&UBTAuxiliaryNode::TickNode), TickNode>;
111 bNotifyBecomeRelevant = !std::is_same_v<decltype(&UBTAuxiliaryNode::OnBecomeRelevant), OnBecomeRelevant>;
112 bNotifyCeaseRelevant = !std::is_same_v<decltype(&UBTAuxiliaryNode::OnCeaseRelevant), OnCeaseRelevant>;
113 }
114};
115
116#define INIT_AUXILIARY_NODE_NOTIFY_FLAGS() \
117 do { \
118 using NodeType = TRemovePointer<decltype(this)>::Type; \
119 InitNotifyFlags(&NodeType::TickNode, &NodeType::OnBecomeRelevant, &NodeType::OnCeaseRelevant); \
120 } while (false)
121
122inline uint8 UBTAuxiliaryNode::GetChildIndex() const
123{
124 return ChildIndex;
125}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#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
Definition Array.h:670
Definition BTAuxiliaryNode.h:31
uint8 bNotifyCeaseRelevant
Definition BTAuxiliaryNode.h:72
virtual AIMODULE_API void TickNode(UBehaviorTreeComponent &OwnerComp, uint8 *NodeMemory, float DeltaSeconds)
Definition BTAuxiliaryNode.cpp:136
uint8 bTickIntervals
Definition BTAuxiliaryNode.h:78
virtual AIMODULE_API void OnCeaseRelevant(UBehaviorTreeComponent &OwnerComp, uint8 *NodeMemory)
Definition BTAuxiliaryNode.cpp:131
uint8 bNotifyBecomeRelevant
Definition BTAuxiliaryNode.h:69
void InitNotifyFlags(TickNode, OnBecomeRelevant, OnCeaseRelevant)
Definition BTAuxiliaryNode.h:108
virtual AIMODULE_API void OnBecomeRelevant(UBehaviorTreeComponent &OwnerComp, uint8 *NodeMemory)
Definition BTAuxiliaryNode.cpp:126
uint8 ChildIndex
Definition BTAuxiliaryNode.h:81
uint8 bNotifyTick
Definition BTAuxiliaryNode.h:75
Definition BTNode.h:48
Definition BehaviorTreeComponent.h:105
Type
Definition BehaviorTreeTypes.h:217
Definition BTAuxiliaryNode.h:10
float AccumulatedDeltaTime
Definition BTAuxiliaryNode.h:12
float NextTickRemainingTime
Definition BTAuxiliaryNode.h:11
Definition BTNode.h:34