Hello everyone. I am making a 2D shooter and I want to introduce new enemies after certain levels are reached. I created a GameObject called enemies. I added 2 enemy prefabs to the Array. It’s working except that when level 6 is reached, I want to ONLY start spawning enemy[1] not enemy[0] but it keeps spawning both. Can anyone see what I’m doing wrong?
function LevelEnd(){
EnemySpeed += -.1;
if(level <=5){
while(totalEnemies < level){
posX = Random.Range(-4.213592,4.336067);
yield WaitForSeconds(3);
Instantiate(enemies[0], Vector3(posX, 0.1, 3.545458),transform.rotation);
}
}
if(level >= 6 && level < 10){
while(totalEnemies < level){
posX = Random.Range(-4.213592,4.336067);
yield WaitForSeconds(3);
Instantiate(enemies[1], Vector3(posX, 0.1, 3.545458),transform.rotation);
}
}
if(level >= 10 && level < 15){
while(totalEnemies < level){
posX = Random.Range(-4.213592,4.336067);
yield WaitForSeconds(3);
Instantiate(enemies[1], Vector3(posX, 0.1, 3.545458),transform.rotation);
}
}
}
EDIT
GameController.js
function Update () {
if(!playerspawning){
timer += Time.deltaTime;
}
//when timer reaches 2 seconds, call Spawn function
if(timer >= 2){
Spawn();
}
if(level == 0 ||cash == level * 200){
level++;
LevelEnd();
}
}
function LevelEnd(){
//I don't know about the rest of your code, but you have to do
//something like this:
totalEnemies = 0;
EnemyMovement.EnemySpeed += -.1;
if(level <=5){
while(totalEnemies < level){
posX = Random.Range(-4.213592,4.336067);
yield WaitForSeconds(3);
Instantiate(enemies[0], Vector3(posX, 0.1, 3.545458),transform.rotation);
// Update your totalEnemies variable
totalEnemies++;
}
}
if(level >= 6 && level < 10){
while(totalEnemies < level){
posX = Random.Range(-4.213592,4.336067);
yield WaitForSeconds(3);
Instantiate(enemies[1], Vector3(posX, 0.1, 3.545458),transform.rotation);
// Update your totalEnemies variable
totalEnemies++;
}
}
if(level >= 10 && level < 15){
while(totalEnemies < level){
posX = Random.Range(-4.213592,4.336067);
yield WaitForSeconds(3);
Instantiate(enemies[1], Vector3(posX, 0.1, 3.545458),transform.rotation);
// Update your totalEnemies variable
totalEnemies++;
}
}
}
EnemyMovement.js
var enemySpeed:float;
static var CoastguardSpeed:float;
function Awake(){
enemySpeed = EnemySpeed;
}
function Update () {
transform.Translate(0,0,enemySpeed * Time.deltaTime);
if(transform.position.z < -2.04){
GameController.totalEnemies -= 1;
Destroy(gameObject);
}
}