void PoolEnemies() { enemiesCount = new Dictionary <GameObject, int>(); enemiesAvailable = new Dictionary <GameObject, List <GameObject> >(); //Get max number of each enemy for (int i = 0; i < waves.Length; i++) { for (int j = 0; j < waves[i].burst.Length; j++) { WaveBurst burst = waves[i].burst[j]; if (enemiesCount.ContainsKey(burst.enemyType)) { if (enemiesCount[burst.enemyType] < burst.count) { enemiesCount[burst.enemyType] = burst.count; } } else { enemiesCount.Add(burst.enemyType, burst.count); } } } foreach (GameObject enemyType in enemiesCount.Keys) { int n = 0; for (int i = 0; i < enemiesCount[enemyType]; i++) { GameObject obj = (GameObject)Instantiate(enemyType, spawnPoint.position, spawnPoint.rotation); obj.transform.SetParent(transform); obj.SetActive(false); if (enemiesAvailable.ContainsKey(enemyType)) { enemiesAvailable[enemyType].Add(obj); n++; } else { List <GameObject> objs = new List <GameObject>(); objs.Add(obj); enemiesAvailable.Add(enemyType, objs); n = 0; } } } }
void PoolEnemies() { enemiesCount = new Dictionary <Enums.EnemyType, int>(); enemiesAvailable = new Dictionary <Enums.EnemyType, List <GameObject> >(); enemiesType = new Dictionary <Enums.EnemyType, GameObject> { { Enums.EnemyType.basic, basicEnemy }, { Enums.EnemyType.fast, fastEnemy }, { Enums.EnemyType.tank, tankEnemy }, { Enums.EnemyType.shilded, shildedEnemy }, { Enums.EnemyType.cluster, cluster }, { Enums.EnemyType.fireElement, fireElement }, { Enums.EnemyType.acidElement, acidElement }, { Enums.EnemyType.iceElement, iceElement }, { Enums.EnemyType.flying, flying }, { Enums.EnemyType.zip, zip }, { Enums.EnemyType.invisible, invisible } }; //Get max number of each enemy for (int i = 0; i < waves.Length; i++) { for (int j = 0; j < waves[i].burst.Length; j++) { WaveBurst burst = waves[i].burst[j]; if (enemiesCount.ContainsKey(burst.enemyType)) { if (enemiesCount[burst.enemyType] < burst.count) { enemiesCount[burst.enemyType] = burst.count; } } else { enemiesCount.Add(burst.enemyType, burst.count); } } } foreach (Enums.EnemyType enemyType in enemiesCount.Keys) { int n = 0; for (int i = 0; i < enemiesCount[enemyType]; i++) { GameObject obj = (GameObject)Instantiate(enemiesType[enemyType], spawnPoint.position, spawnPoint.rotation); obj.transform.SetParent(transform); obj.SetActive(false); if (enemiesAvailable.ContainsKey(enemyType)) { enemiesAvailable[enemyType].Add(obj); n++; } else { List <GameObject> objs = new List <GameObject>(); objs.Add(obj); enemiesAvailable.Add(enemyType, objs); n = 0; } } } }