// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_4 #include "CoreMinimal.h" #endif #include "UObject/ObjectMacros.h" #include "Templates/SubclassOf.h" #include "NavAreas/NavAreaMeta.h" #include "NavAreaMeta_SwitchByAgent.generated.h" class AActor; /** Class containing definition of a navigation area */ UCLASS(Abstract, MinimalAPI) class UNavAreaMeta_SwitchByAgent : public UNavAreaMeta { GENERATED_UCLASS_BODY() UPROPERTY(EditAnywhere, Category=AgentTypes) TSubclassOf Agent0Area; UPROPERTY(EditAnywhere, Category=AgentTypes) TSubclassOf Agent1Area; UPROPERTY(EditAnywhere, Category=AgentTypes) TSubclassOf Agent2Area; UPROPERTY(EditAnywhere, Category=AgentTypes) TSubclassOf Agent3Area; UPROPERTY(EditAnywhere, Category=AgentTypes) TSubclassOf Agent4Area; UPROPERTY(EditAnywhere, Category=AgentTypes) TSubclassOf Agent5Area; UPROPERTY(EditAnywhere, Category=AgentTypes) TSubclassOf Agent6Area; UPROPERTY(EditAnywhere, Category=AgentTypes) TSubclassOf Agent7Area; UPROPERTY(EditAnywhere, Category=AgentTypes) TSubclassOf Agent8Area; UPROPERTY(EditAnywhere, Category=AgentTypes) TSubclassOf Agent9Area; UPROPERTY(EditAnywhere, Category=AgentTypes) TSubclassOf Agent10Area; UPROPERTY(EditAnywhere, Category=AgentTypes) TSubclassOf Agent11Area; UPROPERTY(EditAnywhere, Category=AgentTypes) TSubclassOf Agent12Area; UPROPERTY(EditAnywhere, Category=AgentTypes) TSubclassOf Agent13Area; UPROPERTY(EditAnywhere, Category=AgentTypes) TSubclassOf Agent14Area; UPROPERTY(EditAnywhere, Category=AgentTypes) TSubclassOf Agent15Area; NAVIGATIONSYSTEM_API virtual TSubclassOf PickAreaClassForAgent(const AActor& Actor, const FNavAgentProperties& NavAgent) const override; #if WITH_EDITOR /** setup AgentXArea properties */ NAVIGATIONSYSTEM_API virtual void UpdateAgentConfig(); #endif };