public void Reset() { // destroy existing summoned enemies EnemyScout redKnight = GetComponentInChildren <EnemyScout> (); if (redKnight != null) { redKnight.Die(); } EnemyShoot greenKnight = GetComponentInChildren <EnemyShoot> (); if (greenKnight != null) { greenKnight.Die(); } EnemyChaseShoot blackKnight = GetComponentInChildren <EnemyChaseShoot> (); if (blackKnight != null) { blackKnight.Die(); } // reset local vars _existRedKnight = false; _existGreenKnight = false; _existBlackKnight = false; _nextTimeToSummonRedKnight = 0; _nextTimeToSummonGreenKnight = 0; _nextTimeToSummonBlackKnight = 0; }
void Update() { // summon red knight if (_existRedKnight == false && Time.time > _nextTimeToSummonRedKnight) { Summon(RedKnightPrefab, RedKnightSummonPos.position); _existRedKnight = true; } // summon green knight if (_existGreenKnight == false && Time.time > _nextTimeToSummonGreenKnight) { Summon(GreenKnightPrefab, GreenKnightSummonPos.position); _existGreenKnight = true; } // summon black knight if (_existBlackKnight == false && Time.time > _nextTimeToSummonBlackKnight) { Summon(BlackKnightPrefab, BlackKnightSummonPos.position); _existBlackKnight = true; } // check previously summoned enemies if (_existRedKnight == true) { EnemyScout redKnight = GetComponentInChildren <EnemyScout> (); if (redKnight == null) // red knight is gone! { _nextTimeToSummonRedKnight = Time.time + RedKnightSummonInterval; _existRedKnight = false; } // else do nothing } if (_existGreenKnight == true) { EnemyShoot greenKnight = GetComponentInChildren <EnemyShoot> (); if (greenKnight == null) // green knight is gone! { _nextTimeToSummonGreenKnight = Time.time + GreenKnightSummonInterval; _existGreenKnight = false; } // else do nothing } if (_existBlackKnight == true) { EnemyChaseShoot blackKnight = GetComponentInChildren <EnemyChaseShoot> (); if (blackKnight == null) // black knight is gone! { _nextTimeToSummonBlackKnight = Time.time + BlackKnightSummonInterval; _existBlackKnight = false; } // else do nothing } }