Hi,
I’m creating a tower defence game.
I’m having trying to spawn a second batch of enemies (next wave) after the first batch has spawned (when enemiesSpawned >= enemiesToSpawn) after a certain amount of time has passed. so far the first batch will spawn and the second batch will not.
can anyone please help me figure this problem out?
Thanks,
#pragma strict
var enemyWayPoints:Transform[];
var enemySpawn:Transform;
var enemy:GameObject;
var enemies:Array = new Array();
var waveTime = 1;
private var nextWaveTime = 0.0;
var currentWave:int;
var enemyCount:int;
var enemiesToSpawn:int;
var enemiesSpawned:int;
var spawnRate = 1;
private var nextSpawnTime = 0.0;
function Start ()
{
enemiesToSpawn = 3;
}
function Update ()
{
print("next wave time = " + nextWaveTime);
print("enemies to spawn = " + enemiesToSpawn);
if(Time.time >= nextWaveTime)
{
for(var i:int=enemiesSpawned; i < enemiesToSpawn; i++)
{
if(Time.time >= nextSpawnTime)
{
SpawnEnemy();
enemiesSpawned++;
print("enemies spawned = " + enemiesSpawned);
CheckWave();
}
}
}
}
function CheckWave()
{
if(enemiesSpawned >= enemiesToSpawn)
{
nextWaveTime = Time.time + waveTime;
currentWave++;
enemiesSpawned = 0;
enemiesToSpawn = 0;
print("current wave: " + currentWave);
}
}
function SpawnEnemy()
{
nextSpawnTime = Time.time + spawnRate;
var newEnemy = Instantiate(enemy, enemySpawn.position, enemySpawn.rotation);
enemies.Add(newEnemy);
print("enemies = " + enemies.length);
}