IEnumerator SpawnWaves() { while (!gameOver) { Vector3 spawnPosition; GameObject toSpawn; Quaternion spawnRotation = Quaternion.identity; if (spawnGunLevelUp && gunSetupCounter < numGunSetups) { spawnPosition = GetPowerupSpawnPos(); toSpawn = gunLevelUp; GameObject clone = Instantiate(toSpawn, spawnPosition, spawnRotation) as GameObject; GunLevelUpController powerup = clone.GetComponent <GunLevelUpController>(); powerup.gunType = gunSetupCounter++; spawnGunLevelUp = false; } else { spawnPosition = GetHazardSpawnPos(); toSpawn = hazards[Random.Range(0, hazards.Length)]; Instantiate(toSpawn, spawnPosition, spawnRotation); } yield return(new WaitForSeconds(Random.Range(spawnWaitMin, spawnWaitMax))); } }
void OnTriggerEnter(Collider other) { if (other.gameObject.CompareTag("Player")) { if (gameObject.CompareTag("Enemy")) { gameController.BroadcastGameOver(); Debug.Log("Broadcasted"); } else if (gameObject.CompareTag("GunLevelUp")) { GunLevelUpController powerup = gameObject.GetComponent <GunLevelUpController>(); playerController.SetGuns(powerup.numGuns[powerup.gunType], powerup.angles[powerup.gunType]); Destroy(gameObject); } else if (gameObject.CompareTag("FireRateBoost")) { FireRateBoostController powerup = gameObject.GetComponent <FireRateBoostController>(); powerup.IncreaseFireRate(); Destroy(gameObject); } } else if (other.gameObject.CompareTag("Enemy") && other.isTrigger) { if (gameObject.CompareTag("PlayerShot")) { Destroy(other.gameObject); Destroy(gameObject); gameController.AddScore(); } } else if (other.gameObject.CompareTag("PlayerShot") && gameObject.CompareTag("Obstacle")) { Destroy(other.gameObject); } }