Setup NPC director
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user