版本号:UE4.26
如果你需要在BTTask中使用FBlackboardKeySelector,继承自UBTTaskNode。
当GetSelectedKeyID()返回值为255(FBlackboard::FKey(-1))时,你需要在你的BTTask中,实现InitializeFromAsset函数。
具体可以参考UBTTask_BlackboardBase类中的实现。
UBTTask_BlackboardBase.h
/** initialize any asset related data */
virtual void InitializeFromAsset(UBehaviorTree& Asset) override;
UBTTask_BlackboardBase.cpp
void UBTTask_BlackboardBase::InitializeFromAsset(UBehaviorTree& Asset)
{
Super::InitializeFromAsset(Asset);
UBlackboardData* BBAsset = GetBlackboardAsset();
if (BBAsset)
{
BlackboardKey.ResolveSelectedKey(*BBAsset);
}
else
{
UE_LOG(LogBehaviorTree, Warning, TEXT("Can't initialize task: %s, make sure that behavior tree specifies blackboard asset!"), *GetName());
}
}