public void GeneratePoolsObjects() { foreach (EnemyPool enemyPool in enemiesPools) { enemyPool.DestroyPoolObjects(); for (int i = 0; i < enemyPool.numberOfElements; i++) { EnemySpaceShipScript newEnemy = Instantiate(enemyPool.enemyPrefab, enemyPool.poolParent); newEnemy.SetUpOnPoolInstantiation(enemyPool.elementLibraryIndex); enemyPool.instantiatedObjects.Add(newEnemy); } } foreach (ObstaclePool obstaclePool in obstaclesPools) { obstaclePool.DestroyPoolObjects(); for (int i = 0; i < obstaclePool.numberOfElements; i++) { Obstacle newObstacle = Instantiate(obstaclePool.obstaclePrefab, obstaclePool.poolParent); newObstacle.SetUpOnPoolInstantiation(obstaclePool.elementLibraryIndex); obstaclePool.instantiatedObjects.Add(newObstacle); } } foreach (ProjectilePool projectilePool in projectilesPools) { projectilePool.DestroyPoolObjects(); for (int i = 0; i < projectilePool.numberOfElements; i++) { ProjectileScript newProjectile = Instantiate(projectilePool.projectilePrefab, projectilePool.poolParent); newProjectile.SetUpOnPoolInstantiation(projectilePool.elementLibraryIndex); projectilePool.instantiatedObjects.Add(newProjectile); } } #if UNITY_EDITOR UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty(gameObject.scene); #endif }