public bool Spawn(SpawnLevel.EnemyTypes enemyType) { if (transform.position.x < minSpawnPosition.x || transform.position.x > maxSpawnPosition.x || transform.position.z < minSpawnPosition.z || transform.position.z > maxSpawnPosition.z) { Debug.Log(gameObject.name + " skipped because it's outside of the tolerance!"); return(false); } else { GameObject enemy = null; switch (enemyType) { case SpawnLevel.EnemyTypes.NORMAL_SHOOTING_ENEMY: enemy = objectPool.GetPooledObjectByIndex(0); break; case SpawnLevel.EnemyTypes.EXPLODING_ENEMY: enemy = objectPool.GetPooledObjectByIndex(1); break; case SpawnLevel.EnemyTypes.ROTATING_SHOOTING_ENEMY: enemy = objectPool.GetPooledObjectByIndex(2); break; } enemy.transform.position = transform.position; enemy.SetActive(true); return(true); } }
private void Spawn(SpawnLevel.EnemyTypes enemyType) { bool spawned = false; while (!spawned) { int randomSpawner = Random.Range(0, spawners.Length); spawned = spawners [randomSpawner].Spawn(enemyType); } currentConcurrentEnemies++; if (currentConcurrentEnemies >= concurrentAllowedEnemies) { canSpawn = false; } }