private void Start() { CheckPoint.Load(); Debug.Log("Resuming from: " + CheckPoint.progress); idlePools = new List <Queue <GameObject> >(); activeEnemies = new List <GameObject> [enemyDetails.Count]; for (int i = 0; i < enemyDetails.Count; i++) { idlePools.Add(new Queue <GameObject>()); activeEnemies[i] = new List <GameObject>(); } for (int i = 0; i < enemyDetails.Count; i++) { GameObject child = new GameObject(enemyDetails[i].enemyName + " Pool"); child.transform.parent = transform; if (enemyDetails[i].enemyPrefab != null) { if (enemyDetails[i].isBoss) { GameObject obj = Instantiate(enemyDetails[i].enemyPrefab, new Vector3(0, POOL_OFFSET_Y, 0), Quaternion.identity); obj.transform.parent = child.transform; idlePools[i].Enqueue(obj); } else { for (int j = 0; j < enemyDetails[i].preferredPoolSize; j++) { GameObject obj = Instantiate(enemyDetails[i].enemyPrefab, new Vector3(0, POOL_OFFSET_Y, 0), Quaternion.identity); obj.transform.parent = child.transform; idlePools[i].Enqueue(obj); } } } else { Debug.Log(enemyDetails[i].enemyName + " Has no prefab provided"); } } Resume(); }