コード例 #1
0
    private void InitWave(int index)
    {
        WaveData waveData = levelData.Waves[index];

        List <Column> columns = new List <Column>(waveData.columns.Length);

        foreach (ColumnData columnData in waveData.columns)
        {
            Column column = new Column(columnData);

            foreach (EnemyData enemyData in columnData.enemies)
            {
                GameObject enemy = GetFromEnemyPool(enemyData.prefab);
                if (enemy != null)
                {
                    enemy.transform.localPosition = enemyData.position;
                    enemy.SetActive(true);
                    enemy.SendMessage("OnInitWave", SendMessageOptions.DontRequireReceiver);

                    column.AddEnemy(enemy);
                }
                else
                {
                    Debug.LogWarning("Enemy not available: " + enemyData.prefab.name);
                }
            }

            columns.Add(column);
        }

        currentWave = new Wave(waveData, columns);

        waveController.StartWave(currentWave);
    }