FBBKeyCachedAccessor

A helper type that improved performance of reading data from BB It's meant for a specific use-case: 1.

Windows
MacOS
Linux

References

Module

AIModule

Header

/Engine/Source/Runtime/AIModule/Classes/BehaviorTree/BlackboardComponent.h

Include

#include "BehaviorTree/BlackboardComponent.h"

Syntax

template<typename TBlackboardKey>
struct FBBKeyCachedAccessor

Remarks

A helper type that improved performance of reading data from BB It's meant for a specific use-case: 1. you have a logical property you want to use both in C++ code as well as being reflected in the BB

  1. you only ever set this property in native code

If those two are true then add a member variable of type FBlackboardCachedAccessor like so:

FBlackboardCachedAccessor<UBlackboardKeyType_Bool> BBEnemyInMeleeRangeKey;

and from this point on whenever you set or read the value use this variable. This will make reading almost free.

Before you use the variable you need to initialize it with appropriate BB asset. This is best done in AAIController::InitializeBlackboard override, like so:

const FBlackboard::FKey EnemyInMeleeRangeKey = BlackboardAsset.GetKeyID(TEXT("EnemyInMeleeRange")); BBEnemyInMeleeRangeKey = FBlackboardCachedAccessor<UBlackboardKeyType_Bool>(BlackboardComp, EnemyInMeleeRangeKey);

Best used with numerical and boolean types. No guarantees made when using pointer types.

does not automatically support BB component or asset change

Constructors

Name Description

Public function

FBBKeyCachedAccessor()

Public function

FBBKeyCachedAccessor

(
    UBlackboardComponent& BBComponent,
    FBlackboard::FKey InBBKey
)

Functions

Name Description

Public function Const

const FStore...

 

Get()

Public function Const

T2

 

Get()

Public function Const

bool

 

IsValid()

Public function

bool

 

SetValue

(
    UBlackboardComponent& BBComponent,
    const T2 InValue
)

Public function

bool

 

SetValue

(
    UBlackboardComponent& BBComponent,
    const FStoredType InValue
)

Typedefs

Name

Description

FStoredType

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss