16#include "AIPerceptionSystem.generated.h"
49 UPROPERTY(config, EditAnywhere, Category = Perception)
50 float PerceptionAgingRate;
80 return SenseID ==
Other.SenseID && Source ==
Other.Source;
93 template<
typename FEventClass,
typename FSenseClass =
typename FEventClass::FSenseClass>
96 const FAISenseID SenseID = UAISense::GetSenseID<FSenseClass>();
97 if (Senses.IsValidIndex(SenseID) && Senses[SenseID] !=
nullptr)
99 ((FSenseClass*)Senses[SenseID])->RegisterEvent(
Event);
104 template<
typename FEventClass,
typename FSenseClass =
typename FEventClass::FSenseClass>
107 if (Events.Num() > 0)
109 const FAISenseID SenseID = UAISense::GetSenseID<FSenseClass>();
110 if (Senses.IsValidIndex(SenseID) && Senses[SenseID] !=
nullptr)
112 ((FSenseClass*)Senses[SenseID])->RegisterEventsBatch(Events);
118 template<
typename FEventClass,
typename FSenseClass =
typename FEventClass::FSenseClass>
128 UFUNCTION(BlueprintCallable, Category =
"AI|Perception")
131 UFUNCTION(BlueprintCallable, Category = "AI|Perception", meta = (WorldContext="WorldContextObject"))
136 void RegisterSource(
AActor& SourceActor);
160 UFUNCTION(BlueprintCallable, Category =
"AI|Perception", meta = (WorldContext=
"WorldContextObject"))
165 UFUNCTION(BlueprintCallable, Category = "AI|Perception", meta = (WorldContext="WorldContextObject"))
168#if WITH_GAMEPLAY_DEBUGGER_MENU
216template<
typename FSenseClass>
219 FAISenseID SenseID = UAISense::GetSenseID<FSenseClass>();
223 SenseID = UAISense::GetSenseID<FSenseClass>();
#define NULL
Definition oodle2base.h:134
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define UCLASS(...)
Definition ObjectMacros.h:776
Definition GameplayDebuggerCategory.h:49
Definition NameTypes.h:617
Definition UObjectGlobals.h:1292
static COREUOBJECT_API FObjectInitializer & Get()
Definition UObjectGlobals.cpp:5001
Definition SubclassOf.h:30
Definition AIPerceptionSystem.h:31
bool IsSenseInstantiated(const FAISenseID &SenseID) const
Definition AIPerceptionSystem.h:87
TArray< FPerceptionSourceRegistration > SourcesToRegister
Definition AIPerceptionSystem.h:83
void RegisterSource(AActor &SourceActor)
Definition AIPerceptionSystem.h:217
AIPerception::FListenerMap & GetListenersMap()
Definition AIPerceptionSystem.h:202
void OnEventsBatch(const TArray< FEventClass > &Events)
Definition AIPerceptionSystem.h:105
static void OnEvent(UWorld *World, const FEventClass &Event)
Definition AIPerceptionSystem.h:119
TArray< FDelayedStimulus > DelayedStimuli
Definition AIPerceptionSystem.h:67
AIMODULE_API FAISenseID RegisterSenseClass(TSubclassOf< UAISense > SenseClass)
Definition AIPerceptionSystem.cpp:52
AIPerception::FListenerMap ListenerContainer
Definition AIPerceptionSystem.h:44
void OnEvent(const FEventClass &Event)
Definition AIPerceptionSystem.h:94
EDelayedStimulusSorting
Definition AIPerceptionSystem.h:185
@ RequiresSorting
Definition AIPerceptionSystem.h:186
@ NoNeedToSort
Definition AIPerceptionSystem.h:187
double NextStimuliAgingTick
Definition AIPerceptionSystem.h:209
Definition AISenseEvent.h:14
Definition AISubsystem.h:16
virtual AIMODULE_API void StartPlay() override
Definition AISystem.cpp:97
Definition EngineTypes.h:3429
bool IsValid() const
Definition AITypes.h:210
Definition AIPerceptionTypes.h:130
Definition AIPerceptionTypes.h:247
Definition AIPerceptionTypes.h:300
Definition ObjectPtr.h:488
Definition LightweightStats.h:416
Definition WeakObjectPtrTemplates.h:25
Definition AIPerceptionSystem.h:60
double DeliveryTimestamp
Definition AIPerceptionSystem.h:61
FAIStimulus Stimulus
Definition AIPerceptionSystem.h:64
FPerceptionListenerID ListenerId
Definition AIPerceptionSystem.h:62
TWeakObjectPtr< AActor > Instigator
Definition AIPerceptionSystem.h:63
Definition AIPerceptionSystem.h:70
TWeakObjectPtr< AActor > Source
Definition AIPerceptionSystem.h:72
FPerceptionSourceRegistration(FAISenseID InSenseID, AActor *SourceActor)
Definition AIPerceptionSystem.h:74
bool operator==(const FPerceptionSourceRegistration &Other) const
Definition AIPerceptionSystem.h:78
FAISenseID SenseID
Definition AIPerceptionSystem.h:71