@@ -19,15 +19,16 @@ ASpawnVolume::ASpawnVolume()
1919 // Set the spawn delay range
2020 SpawnDelayRangeLow = 1 .0f ;
2121 SpawnDelayRangeHigh = 4 .5f ;
22+
2223}
2324
2425// Called when the game starts or when spawned
2526void ASpawnVolume::BeginPlay ()
2627{
2728 Super::BeginPlay ();
29+
30+
2831
29- SpawnDelay = FMath::FRandRange (SpawnDelayRangeLow, SpawnDelayRangeHigh);
30- GetWorldTimerManager ().SetTimer (SpawnTimer, this , &ASpawnVolume::SpawnPickup, SpawnDelay, false );
3132}
3233
3334// Called every frame
@@ -46,6 +47,21 @@ FVector ASpawnVolume::GetRandomPointInVolume()
4647
4748}
4849
50+ void ASpawnVolume::SetSpawningActive (bool bShouldSpawn)
51+ {
52+ if (bShouldSpawn)
53+ {
54+ // Set the timer on Spawn Pickup
55+ SpawnDelay = FMath::FRandRange (SpawnDelayRangeLow, SpawnDelayRangeHigh);
56+ GetWorldTimerManager ().SetTimer (SpawnTimer, this , &ASpawnVolume::SpawnPickup, SpawnDelay, false );
57+ }
58+ else
59+ {
60+ // clear the timer on Spawn Pickup
61+ GetWorldTimerManager ().ClearTimer (SpawnTimer);
62+ }
63+ }
64+
4965void ASpawnVolume::SpawnPickup ()
5066{
5167 // If we have set something to spawn:
@@ -71,11 +87,11 @@ void ASpawnVolume::SpawnPickup()
7187
7288 // spawn the pickup
7389 APickup* const SpawnedPickup = World->SpawnActor <APickup>(WhatToSpawn, SpawnLocation, SpawnRotation, SpawnParams);
74-
90+
7591 SpawnDelay = FMath::FRandRange (SpawnDelayRangeLow, SpawnDelayRangeHigh);
7692 GetWorldTimerManager ().SetTimer (SpawnTimer, this , &ASpawnVolume::SpawnPickup, SpawnDelay, false );
93+
7794 }
7895 }
7996
8097}
81-
0 commit comments