private GameObject TakeFromPool(EnemyTypeSpawner spawner) { for (int i = 0; i < spawner.onScene.Count; i++) { if (!spawner.onScene[i].activeInHierarchy) { return(spawner.onScene[i]); } } GameObject newOne = Instantiate(spawner.prefab, gameObject.transform); spawner.onScene.Add(newOne); return(newOne); }
IEnumerator SimpleContiniousSpawn(EnemyTypeSpawner spawner) { spawner.onScene = new List <GameObject>(); while (true) { yield return(new WaitForSeconds(spawner.secsBetween)); for (int i = 0; i < spawner.amount; i++) { GameObject temp = TakeFromPool(spawner); temp.transform.position = PosOutside(); temp.SetActive(true); } } }