UE4C++小知识(九)BTTask中的FBlackboardKeySelector 返回255错误值

版本号: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());
	}
}

猜你喜欢

转载自blog.csdn.net/qq_41487299/article/details/122177792