Module |
|
Header |
/Engine/Source/Runtime/AIModule/Classes/BehaviorTree/BlackboardComponent.h |
Include |
#include "BehaviorTree/BlackboardComponent.h" |
template<typename TBlackboardKey>
struct FBBKeyCachedAccessor
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
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
Name | Description | |
---|---|---|
|
FBBKeyCachedAccessor() |
|
|
FBBKeyCachedAccessor ( |
Name | Description | ||
---|---|---|---|
|
const FStore... |
Get() |
|
|
T2 |
Get() |
|
|
IsValid() |
||
|
SetValue ( |
||
|
SetValue ( |
Name |
Description |
---|---|
FStoredType |