Ejemplo n.º 1
0
    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
    }