Here is my code:
public float SpawnRate = 6F;
void Update()
{
if (VarRef.EndScene[VarRef.CurrPlayer] == false)
{
if (Time.time > NextSpawn)
{
if (EnemyCount < 10)
{
NextSpawn = Time.time + SpawnRate;
Spawn();
}
}
}
}
public void Spawn()
{
int i, j;
int VehiclePass;
int VehicleType = 0;
VarRef.Load();
if (VarRef.GameOver[VarRef.CurrPlayer] == false)
{
RandY = Random.Range(1, 4);
WhereToSpawn = new Vector3(5.5F, VPos[RandY], 1F);
if (VarRef.Level[VarRef.CurrPlayer] == 1)
{
EnemyNumber = Random.Range(1, 3);
Instantiate(Enemy[EnemyNumber], WhereToSpawn, Quaternion.identity);
VehiclePass = Random.Range(1, 5000);
if (VehiclePass >= 3900)
{
VarRef.Vehicles[VarRef.CurrPlayer] ++;
if (VarRef.Vehicles[VarRef.CurrPlayer] > 3) VarRef.Vehicles[VarRef.CurrPlayer] = 3;
if (VarRef.Vehicles[VarRef.CurrPlayer] < 4)
{
aa:
VehicleType = Random.Range(1, 4);
if (VehicleType == 1)
{
//Cop Bike
j = 0;
for (i = 1; i <= 3; i++)
{
if (VarRef.VehicleList[VarRef.CurrPlayer, i] == 1) j = 1;
}
if (j != 0) {VehicleType = 0; goto aa;}
VarRef.VehicleList[VarRef.CurrPlayer, VarRef.Vehicles[VarRef.CurrPlayer]] = 1;
Instantiate(Vehicle_CopBike, new Vector3(Vehicle_CopBike.transform.position.x, Vehicle_CopBike.transform.position.y, Vehicle_CopBike.transform.position.z), Quaternion.identity);
if (VarRef.SoundActive[VarRef.CurrPlayer] == true) GetComponent<AudioSource>().PlayOneShot(Siren, VarRef.Sound[VarRef.CurrPlayer]);
}
if (VehicleType == 2)
{
//Cop Car
j = 0;
for (i = 1; i <= 3; i++)
{
if (VarRef.VehicleList[VarRef.CurrPlayer, i] == 2) j = 1;
}
if (j != 0) {VehicleType = 0; goto aa;}
VarRef.VehicleList[VarRef.CurrPlayer, VarRef.Vehicles[VarRef.CurrPlayer]] = 2;
Instantiate(Vehicle_CopCar, new Vector3(Vehicle_CopCar.transform.position.x, Vehicle_CopCar.transform.position.y, Vehicle_CopCar.transform.position.z), Quaternion.identity);
if (VarRef.SoundActive[VarRef.CurrPlayer] == true) GetComponent<AudioSource>().PlayOneShot(Siren, VarRef.Sound[VarRef.CurrPlayer]);
}
if (VehicleType == 3)
{
//Cop Helicopter
j = 0;
for (i = 1; i <= 3; i++)
{
if (VarRef.VehicleList[VarRef.CurrPlayer, i] == 3) j = 1;
}
if (j != 0) {VehicleType = 0; goto aa;}
VarRef.VehicleList[VarRef.CurrPlayer, VarRef.Vehicles[VarRef.CurrPlayer]] = 1;
Instantiate(Vehicle_CopCopter, new Vector3(Vehicle_CopCopter.transform.position.x, Vehicle_CopCopter.transform.position.y, Vehicle_CopCopter.transform.position.z), Quaternion.identity);
if (VarRef.SoundActive[VarRef.CurrPlayer] == true) GetComponent<AudioSource>().PlayOneShot(Copter, VarRef.Sound[VarRef.CurrPlayer]);
}
}
}
}
...
I’m trying to generate random enemies. First, I’m getting many enemies overlapping each other. There’s only 3 lines for enemies to appear on, so I’m guessing I need to generate them less often; I’ve increased the value of SpawnRate, but that didn’t seem to help.
I’m also getting multiple of the same vehicle. Theoretically, it shouldn’t be able to have more than 1 of each at any given time (veh#1, #2 and #3 x1 each = 3 total). However, I’m getting two or three at a time, and overlapping each other.
Can anyone help me fix this mess?