UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BTDecorator_Blackboard.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 "InputCoreTypes.h"
10#include "BTDecorator_Blackboard.generated.h"
11
12class FBlackboardDecoratorDetails;
13class UBehaviorTree;
14class UBlackboardComponent;
15struct FBlackboardEntry;
16
21UENUM()
23{
24 enum Type : int
25 {
26 ValueChange UMETA(DisplayName="On Value Change", ToolTip="Restart on every change of observed blackboard value"),
27 ResultChange UMETA(DisplayName="On Result Change", ToolTip="Restart only when result of evaluated condition is changed"),
28 };
29}
30
35UCLASS(HideCategories=(Condition), MinimalAPI)
37{
39
40 AIMODULE_API virtual bool CalculateRawConditionValue(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) const override;
41 AIMODULE_API virtual EBlackboardNotificationResult OnBlackboardKeyValueChange(const UBlackboardComponent& Blackboard, FBlackboard::FKey ChangedKeyID) override;
42 AIMODULE_API virtual void DescribeRuntimeValues(const UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory, EBTDescriptionVerbosity::Type Verbosity, TArray<FString>& Values) const override;
43 AIMODULE_API virtual FString GetStaticDescription() const override;
44
45protected:
46
48 UPROPERTY(Category=Blackboard, EditAnywhere, meta=(DisplayName="Key Value"))
49 int32 IntValue;
50
52 UPROPERTY(Category=Blackboard, EditAnywhere, meta=(DisplayName="Key Value"))
53 float FloatValue;
54
56 UPROPERTY(Category=Blackboard, EditAnywhere, meta=(DisplayName="Key Value"))
57 FString StringValue;
58
60 UPROPERTY()
61 FString CachedDescription;
62
64 UPROPERTY()
65 uint8 OperationType;
66
68 UPROPERTY(Category=FlowControl, EditAnywhere)
69 TEnumAsByte<EBTBlackboardRestart::Type> NotifyObserver;
70
71#if WITH_EDITORONLY_DATA
72
73 UPROPERTY(Category=Blackboard, EditAnywhere, meta=(DisplayName="Key Query"))
75
76 UPROPERTY(Category=Blackboard, EditAnywhere, meta=(DisplayName="Key Query"))
78
79 UPROPERTY(Category=Blackboard, EditAnywhere, meta=(DisplayName="Key Query"))
81
82#endif
83
84#if WITH_EDITOR
85public:
87 AIMODULE_API virtual void BuildDescription();
88protected:
89 AIMODULE_API virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
90#endif
91
92 AIMODULE_API virtual void InitializeFromAsset(UBehaviorTree& Asset) override;
93
99 AIMODULE_API void RefreshEnumBasedDecorator(const FBlackboardEntry& Entry);
100
102 AIMODULE_API bool EvaluateOnBlackboard(const UBlackboardComponent& BlackboardComp) const;
103
105};
EBlackboardNotificationResult
Definition BehaviorTreeTypes.h:62
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 UMETA(...)
Definition ObjectMacros.h:747
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Array.h:670
Definition EnumAsByte.h:22
Definition BTDecorator_BlackboardBase.h:16
Definition BTDecorator_Blackboard.h:37
friend FBlackboardDecoratorDetails
Definition BTDecorator_Blackboard.h:104
Definition BehaviorTreeComponent.h:105
Definition BehaviorTree.h:16
Definition BlackboardKeyEnums.h:41
Definition BTDecorator_Blackboard.h:23
Type
Definition BTDecorator_Blackboard.h:25
Type
Definition BehaviorTreeTypes.h:217
Definition BlackboardKeyEnums.h:31
Definition BlackboardKeyEnums.h:55
Definition BlackboardData.h:15
Definition BlackboardKey.h:18
Definition UnrealType.h:6865