13 #include "GameFramework/Actor.h"
14 #include "DomainRandomizationDNNPCH.h"
15 #include "GroupActorManager.generated.h"
19 USTRUCT(Blueprintable)
24 FNVActorTemplateConfig();
28 UPROPERTY(EditAnywhere)
29 TSubclassOf<AActor> ActorClass;
32 UPROPERTY(EditAnywhere)
33 class UStaticMesh* ActorOverrideMesh;
48 void SpawnTemplateActors();
51 virtual void BeginPlay()
override;
52 virtual void BeginDestroy()
override;
53 virtual void PostLoad()
override;
55 virtual void Tick(
float DeltaTime)
override;
57 bool ShouldSpawnRepeatively()
const;
59 AActor* CreateActorFromTemplate(
const FNVActorTemplateConfig& ActorTemplate,
const FTransform& ActorTransform);
62 UPROPERTY(EditAnywhere, Category = GroupActorManager)
66 UPROPERTY(EditAnywhere, Category = GroupActorManager)
67 TArray<TSubclassOf<AActor>> ActorClassesToSpawn;
71 UPROPERTY(EditAnywhere, Category = GroupActorManager)
72 TArray<class UStaticMesh*> OverrideActorMeshes;
75 UPROPERTY(EditAnywhere, Category = GroupActorManager)
76 FInt32Interval CountPerActor;
79 UPROPERTY(EditAnywhere, Category = GroupActorManager)
80 FInt32Interval TotalNumberOfActorsToSpawn;
83 UPROPERTY(EditAnywhere, Instanced, SimpleDisplay, Category = GroupActorManager)
87 UPROPERTY(EditAnywhere, BlueprintReadWrite)
88 AVolume* RandomLocationVolume;
92 UPROPERTY(EditAnywhere, Category = GroupActorManager)
97 TArray<AActor*> ManagedActors;
100 TArray<AActor*> TemplateActors;
102 float CountdownUntilNextSpawn;
104 #if WITH_EDITORONLY_DATA
105 virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
override;
106 static void AddReferencedObjects(UObject* InThis, FReferenceCollector& Collector);
110 TArray<class UStaticMeshComponent*> ProxyMeshComponents;
112 void UpdateProxyMeshes();
113 void UpdateProxyMeshesVisibility();
115 #endif // WITH_EDITORONLY_DATA
117 void DestroyManagedActors();