Return all pooled objects to pool on player death
This commit is contained in:
parent
d49010ff68
commit
56d4c5f5b4
@ -70,6 +70,19 @@ void AObjectPoolManager::ReturnObject(AActor* Object)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AObjectPoolManager::ReturnAllObjects()
|
||||||
|
{
|
||||||
|
int ObjectPoolSize = ObjectPool.Num();
|
||||||
|
|
||||||
|
for (int i = 0; i < ObjectPoolSize; i++)
|
||||||
|
{
|
||||||
|
if (!ObjectPool[i]->IsHidden())
|
||||||
|
{
|
||||||
|
ReturnObject(ObjectPool[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void AObjectPoolManager::SetObjectStatus(bool bEnabled, AActor* Object)
|
void AObjectPoolManager::SetObjectStatus(bool bEnabled, AActor* Object)
|
||||||
{
|
{
|
||||||
Object->SetActorHiddenInGame(!bEnabled);
|
Object->SetActorHiddenInGame(!bEnabled);
|
||||||
|
@ -22,6 +22,8 @@ public:
|
|||||||
|
|
||||||
void ReturnObject(AActor* Object);
|
void ReturnObject(AActor* Object);
|
||||||
|
|
||||||
|
void ReturnAllObjects();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Called when the game starts or when spawned
|
// Called when the game starts or when spawned
|
||||||
virtual void BeginPlay() override;
|
virtual void BeginPlay() override;
|
||||||
|
@ -159,6 +159,21 @@ void AVampireGameMode::AddRandomEnemyTypeToPool()
|
|||||||
void AVampireGameMode::OnPlayerDeath(FDamageInfo DamageInfo)
|
void AVampireGameMode::OnPlayerDeath(FDamageInfo DamageInfo)
|
||||||
{
|
{
|
||||||
GetWorldTimerManager().ClearTimer(SpawnEnemyTimerDelegate);
|
GetWorldTimerManager().ClearTimer(SpawnEnemyTimerDelegate);
|
||||||
|
|
||||||
|
if (EnemyObjectPoolManager)
|
||||||
|
{
|
||||||
|
EnemyObjectPoolManager->ReturnAllObjects();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ProjectileObjectPoolManager)
|
||||||
|
{
|
||||||
|
ProjectileObjectPoolManager->ReturnAllObjects();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (PickupObjectPoolManager)
|
||||||
|
{
|
||||||
|
PickupObjectPoolManager->ReturnAllObjects();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AVampireGameMode::EndGame()
|
void AVampireGameMode::EndGame()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user