Hi i am creating an asteroid game and for my asteroids i used a Coroutine. Now i am trying to create boss fight after i destroyed 100 asteroids. How can i do that. I tried to stop the loop but it wont turn back again. Also if i set up do to something when is bigger then 100 asteroids the other setups wont stop. Sorry for my English and also for my post i am new to this domain. Thank you very much.
public class RandomHazzards : MonoBehaviour {
public GameObject Hazzard;
public GameObject Hazzard2;
public GameObject Hazzard3;
public GameObject Hazzard4;
public GameObject Hazzard5;
public GameObject Hazzard6;
public GameObject Hazzard7;
public GameObject Spawner;
public Vector3 SpawnValues;
public Vector3 SpawnValues2;
public Vector3 SpawnValues3;
public Vector3 SpawnValues4;
public Vector3 SpawnValues5;
public Vector3 SpawnValues6;
public Vector3 SpawnValues7;
public int HazzardCount;
public float spawnwait;
public float StartWait;
public float WaveWait;
public float IncWave;
public float Waveplus = 0.2f;
public int DestroyedAsteroids;
void Start()
{
StartCoroutine (SpawnWaves ());
}
void Update()
{
GameObject theasteroid = GameObject.Find("GameController");
GameController gamecont = theasteroid.GetComponent<GameController>();
if (gamecont == null)
{
// Debug.Log("Game COntroller not found");
}
if (gamecont != null)
{
// Debug.Log("Itworks");
DestroyedAsteroids = gamecont.asteroidskilled;
}
IncWave = WaveWait - Waveplus *Time.deltaTime ;
if (IncWave <= 0.5f) {
IncWave = WaveWait;
}
}
IEnumerator SpawnWaves()
{
yield return new WaitForSeconds(StartWait);
while (true) {
for (int i = 0; i < HazzardCount; i++) {
Vector3 spawnPosition = new Vector3 (Random.Range (SpawnValues.x, -SpawnValues.x), SpawnValues.y, SpawnValues.z);
Vector3 spawnPosition2 = new Vector3 (Random.Range (SpawnValues2.x, -SpawnValues2.x), SpawnValues2.y, SpawnValues2.z);
Vector3 spawnPosition3 = new Vector3 (Random.Range (SpawnValues3.x, -SpawnValues3.x), SpawnValues3.y, SpawnValues3.z);
Vector3 spawnPosition4 = new Vector3 (Random.Range (SpawnValues4.x, -SpawnValues4.x), SpawnValues4.y, SpawnValues4.z);
Vector3 spawnPosition5 = new Vector3 (Random.Range (SpawnValues5.x, -SpawnValues5.x), SpawnValues5.y, SpawnValues5.z);
Vector3 spawnPosition6 = new Vector3 (Random.Range (-SpawnValues6.x, SpawnValues6.x), SpawnValues6.y, SpawnValues6.z);
Vector3 spawnPosition7 = new Vector3 (Random.Range (-SpawnValues7.x, SpawnValues7.x), SpawnValues7.y, SpawnValues7.z);
Quaternion SpawnRotation = Quaternion.identity;
if (DestroyedAsteroids >= 0) {
Instantiate (Hazzard, spawnPosition, SpawnRotation);
Instantiate (Hazzard2, spawnPosition2, SpawnRotation);
Instantiate (Hazzard3, spawnPosition3, SpawnRotation);
Instantiate (Hazzard4, spawnPosition4, SpawnRotation);
Instantiate (Hazzard5, spawnPosition5, SpawnRotation);
}
if (DestroyedAsteroids >= 20) {
Instantiate (Hazzard6, spawnPosition6, SpawnRotation);
}
if (DestroyedAsteroids >= 40) {
Instantiate (Hazzard7, spawnPosition7, SpawnRotation);
}
if (DestroyedAsteroids >= 70) {
Instantiate (Hazzard6, spawnPosition6, SpawnRotation);
Instantiate (Hazzard7, spawnPosition7, SpawnRotation);
}
if (DestroyedAsteroids >= 90) {
Instantiate (Hazzard7, spawnPosition7, SpawnRotation);
}
yield return new WaitForSeconds (IncWave);
}
}
}
}