예제 #1
0
// Called every frame
void ASpawnVolume::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);
	if (bSpawningEnabled)
	{
		if (TimeTillRespawn != 0.f)
		{
			TimeSpent += DeltaTime;
			if (TimeSpent >= TimeTillRespawn)
			{
				SpawnPickup();
				TimeTillRespawn = 0.f;
				TimeSpent = 0.f;
				return;
			}
		}
	
		if (!SpawnedPickup || SpawnedPickup->IsPendingKill())
		{
			GetNewRespawnTime();
		}
	}
	else
	{
		TimeTillStarted -= DeltaTime;
		if (TimeTillStarted <= 0)
			bSpawningEnabled = true;
	}
	
}
void ASpawnVolume::Tick(float DeltaSeconds)
{
	if (m_isSpawningEnable)
	{
		m_SpawnTime += DeltaSeconds;

		bool bShouldSpawn = (m_SpawnTime > m_SpawnDelay);

		if (bShouldSpawn)
		{
			SpawnPickup();

			m_SpawnTime -= m_SpawnDelay;

			m_SpawnDelay = GetRandomSpawnDelay();
		}
	}
}
예제 #3
0
void ASpawnVolume::Tick(float DeltaSeconds)
{
	// If spawning is not enabled, do nothing
	if (!bSpawningEnabled)
		return;

	// Always add delta time to our Spawn Time
	SpawnTime += DeltaSeconds;

	bool bShouldSpawn = (SpawnTime > SpawnDelay);

	if (bShouldSpawn)
	{
		SpawnPickup();

		// Deduct spawn delay from accumulated time value
		SpawnTime -= SpawnDelay;

		SpawnDelay = GetRandomSpawnDelay();
	}
}