Пример #1
0
    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;
                }
            }
        }
    }
Пример #2
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;
                }
            }
        }
    }