Setup NPC director

This commit is contained in:
koritsa
2026-06-01 16:26:15 +03:00
committed by koritsa
parent 4427627e7d
commit 0b59f740c9
17 changed files with 590 additions and 50 deletions
+15 -2
View File
@@ -2,6 +2,7 @@
#include "NPCAIController.h"
#include "NPC.h"
#include "Perception/AISense_Sight.h"
#include "Perception/AISenseConfig_Sight.h"
#include "NakedDesire/Player/NakedDesireCharacter.h"
@@ -29,13 +30,25 @@ void ANPCAIController::OnPossess(APawn* InPawn)
}
void ANPCAIController::OnUnPossess()
{
ClearObservation();
Super::OnUnPossess();
}
void ANPCAIController::ClearObservation()
{
if (bCurrentlyObserving && PlayerCharacter)
{
PlayerCharacter->StatsManager->SetObserved(false, GetPawn());
bCurrentlyObserving = false;
}
Super::OnUnPossess();
}
float ANPCAIController::GetObservationWeight() const
{
if (const ANPC* NPC = Cast<ANPC>(GetPawn()))
return NPC->GetObservationWeight();
return 1.0f;
}
void ANPCAIController::OnTargetPerceptionUpdate(AActor* Actor, FAIStimulus Stimulus)
@@ -54,5 +67,5 @@ void ANPCAIController::OnTargetPerceptionUpdate(AActor* Actor, FAIStimulus Stimu
return;
bCurrentlyObserving = bSensed;
PlayerCharacter->StatsManager->SetObserved(bSensed, GetPawn());
PlayerCharacter->StatsManager->SetObserved(bSensed, GetPawn(), GetObservationWeight());
}