19{
21 SCOPE_CYCLE_COUNTER(STATGROUP_AIToolKit_Behaviors);
22 SCOPE_CYCLE_COUNTER(STATGROUP_AIToolKit_Tasks);
23 if(OwnerComp.GetAIOwner() == nullptr){return EBTNodeResult::Failed;}
24 AAIController* AIController = OwnerComp.GetAIOwner();
25 if(AIController == nullptr){return EBTNodeResult::Failed;}
26 const UBlackboardComponent* BlackboardComp = OwnerComp.GetBlackboardComponent();
27 if(BlackboardComp == nullptr){return EBTNodeResult::Failed;}
28 FVector FocalPoint = FVector::ZeroVector;
29
30 UObject* TargetObject = BlackboardComp->GetValueAsObject(
TargetFocus.SelectedKeyName);
31 if(TargetObject != nullptr)
32 {
33 AActor* TargetActor = Cast<AActor>(TargetObject);
34 if(TargetActor != nullptr)
35 {
37 if(InteractionActor != nullptr)
38 {
40 }
41 else
42 {
43 FocalPoint = TargetActor->GetActorLocation();
44 }
46 {
47 AIController->SetFocalPoint(FocalPoint);
48 }
49 else
50 {
51 AIController->SetFocus(TargetActor);
52 }
54 {
55 const FVector StartLocation = AIController->GetPawn()->GetPawnViewLocation();
56 const FVector EndLocation = TargetActor->GetActorLocation();
59 }
60 }
61 }
62 else
63 {
64 FocalPoint = BlackboardComp->GetValueAsVector(
TargetFocus.SelectedKeyName);
65 AIController->SetFocalPoint(FocalPoint);
67 {
68 const FVector StartLocation = AIController->GetPawn()->GetPawnViewLocation();
69 const FVector EndLocation = BlackboardComp->GetValueAsVector(
TargetFocus.SelectedKeyName);
72 }
73 }
74
75 return EBTNodeResult::Succeeded;
76}
Definition InteractionInterface.h:18
virtual FVector GetInteractionLocation() const =0
bool bFocusPoint
Definition BTTask_SetFocus.h:26
virtual EBTNodeResult::Type ExecuteTask(UBehaviorTreeComponent &OwnerComp, uint8 *NodeMemory) override
Definition BTTask_SetFocus.cpp:18
bool bDebuggingMode
Definition BTTask_SetFocus.h:31
float LineLifetime
Definition BTTask_SetFocus.h:35
FColor TargetPointColor
Definition BTTask_SetFocus.h:39
FBlackboardKeySelector TargetFocus
Definition BTTask_SetFocus.h:28
FColor TargetLineColor
Definition BTTask_SetFocus.h:41
float PointSize
Definition BTTask_SetFocus.h:33
float LineThickness
Definition BTTask_SetFocus.h:37