#pragma once
#include "CoreMinimal.h"
#include "Components/StateTreeAIComponentSchema.h"
#include "Ubs_StateTreeAISchema.generated.h"
class AAIController;
/**
* Custom State Tree schema for AI, providing context data for AIController.
*/
UCLASS(BlueprintType, EditInlineNew, CollapseCategories, meta = (DisplayName = "Ubs StateTree Component", CommonSchema))
class UBSRPG_API UUbs_StateTreeAISchema : public UStateTreeComponentSchema
{
GENERATED_BODY()
public:
virtual void SetContextData(FContextDataSetter& ContextDataSetter, bool bLogErrors) const override;
/** AIController class the StateTree is expected to run on. Allows to bind to specific Actor class' properties. */
UPROPERTY(EditAnywhere, Category = "Defaults", NoClear)
TSubclassOf<AAIController> AIControllerClass = nullptr;
};
#include "StateTree/AI/Ubs_StateTreeAISchema.h"
#include "Components/StateTreeComponentSchema.h"
#include "AIController.h"
#include "StateTreeExecutionContext.h"
#include "BrainComponent.h"
#include "GameFramework/Pawn.h"
void UUbs_StateTreeAISchema::SetContextData(FContextDataSetter& ContextDataSetter, bool bLogErrors) const
{
AAIController* Controller = ContextDataSetter.GetComponent()->GetAIOwner();
if (Controller)
{
ContextDataSetter.SetContextDataByName(FName("AIController"), FStateTreeDataView(Controller));
}
else if (bLogErrors)
{
UE_LOG(LogTemp, Warning, TEXT("UUbs_StateTreeAISchema: AIController is null for component %s"), *GetNameSafe(ContextDataSetter.GetComponent()));
}
Super::SetContextData(ContextDataSetter, bLogErrors);
}
0>Ubs_StateTreeAISchema.cpp.obj: Error : LNK2019: 无法解析的外部符号 “public: bool __cdecl UStateTreeComponentSchema::FContextDataSetter::SetContextDataByName(class FName,struct FStateTreeDataView)” (?SetContextDataByName@FContextDataSetter@UStateTreeComponentSchema@@QEAA_NVFName@@UFStateTreeDataView@@@Z),函数 "public: virtual void __cdecl UUbs_StateTreeAISchema::SetContextData(struct UStateTreeComponentSchema::FContextDataSetter &,bool)const " (?SetContextData@UUbs_StateTreeAISchema@@UEBAXAEAUFContextDataSetter@UStateTreeComponentSchema@@_N@Z) 中引用了该符号