public void SpawnWave(int level) { WavesConfig.Wave wave = wavesConfig.waves[Mathf.Clamp(level, 0, wavesConfig.waves.Length)]; for (int i = 0; i < wave.numberOfEnemies; i++) { SpawnEnemyOnNetwork(enemyToSpawn.gameObject, FindFreePosition(), wave); } if (bossEnemy) { SpawnEnemyOnNetwork(bossEnemy.gameObject, Vector3.zero); } }
void SpawnEnemyOnNetwork(GameObject enemy, Vector3 positionToSpawn, WavesConfig.Wave wave = null) { GameObject newEnemy = Instantiate(enemy) as GameObject; newEnemy.transform.position = positionToSpawn; if (wave != null) { Enemy enemyComponent = newEnemy.GetComponent <Enemy>(); enemyComponent.speed = wave.speed; enemyComponent.timeBetweenShoots = wave.rateOfFire; newEnemy.GetComponent <Weapon>().SetBulletDamage(wave.damage); } NetworkServer.Spawn(newEnemy); }