- Home /
Spawner continuing after boss dies
In my spawner script I have it where every 10 enemies that run through the game, the level increases and the speed of the enemy does too. So on level 4 I have a subboss that comes through the game, which makes the basic enemies not appear, basically having the player and the boss fighting alone. i'm having a little trouble, after I destroy the subboss the spawner does continue but however if the boss collides with the bottom bumper it dies (Which i want it to do if player choose to ignore the boss), but the spawner is turned off.
I want the spawner to continue if the boss collides with the bottom bumper(Like galaga). Here is the script Note: Turning isON from false to true makes the screen flood with enemies.
var isON: boolean = true;
var Enemyred: Transform;
var Enemyreed: Enemy_Red;
function Update () {
//Spawns first enemy
if (isON){
transform.Translate(Vector3(direction * speed * Time.deltaTime,0,0));
if (Time.time > lastSpawn + nextSpawn){
Instantiate(enemy, transform.position, Quaternion.identity);
level = manager.ShipCounter();
manager.ShipCounter();
lastSpawn = Time.time;
nextSpawn = Random.Range(1.0,3.0 - (.2 * level));
}
}
//spawns the subboss
if (level == 4 && isON == true){
isON = false;
Instantiate(Enemyred, Vector3(0,8,2), Quaternion.identity);
if (Time.time > lastSpawn + nextSpawn){
level = manager.ShipCounter();
manager.ShipCounter();
lastSpawn = Time.time;
nextSpawn = Random.Range(1.0,3.0 - (.2 * level));
}
}
if (Enemyreed == null){
Enemyreed = GameObject.FindWithTag("Enemy_Red").GetComponent(Enemy_Red);
}
if(Enemyreed.health <= 0 && level == 4 && isON == false )
{
isON = true;
}
}
I tried to make a collision but i couldn't get it to work, if you good help thank you! Also here is part of the boss script where the boss dies when colldies with the bottom bumper
function OnCollisionEnter(Col: Collision){
if (Col.gameObject.tag == "Bottom"){
Destroy(gameObject);
}
}
Answer by Kiwasi · May 16, 2014 at 02:47 AM
Couple of points to note
Use a custom timer instead of Time.time, this will allow you to pause the timer when the boss appears. There are multiple ways to build a custom timer. Here is one:
private float timer;
if(isOn){
\\ Note placing it here means it is automatically paused if !isOn
timer += Time.deltaTime;
\\ Do all that other stuff replacing Time.time with timer
To fix the bumper problem I would add a check to see if Enemyreed has been destroyed. Change line 36 to:
if(!Enemyreed || (Enemyreed.health <= 0 && level == 4 && isON == false)
A better optimisation would be to have Enemyreed destroy itself an this script just check if it is null.
Your answer
![](https://koobas.hobune.stream/wayback/20220613145130im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Trigger Animation doesn't work, please help me. 1 Answer
Destroy enemy with spotlight 1 Answer
2 objects collide, need to destroy one 2 Answers