Пример #1
0
    /// <summary>
    /// ウェーブ管理用コルーチン
    /// </summary>
    private IEnumerator Coroutine_Wave()
    {
        while (true)
        {
            //少し休憩
            yield return(new WaitForSeconds(4f));

            //UI変更
            gui.waveNumLabel.text = totalWaveNum.ToString();
            //ウェーブ開始のウェーブ数表示
            gui.SetWaveIndicator("Wave" + totalWaveNum);
            //敵を生成
            Enemy[] enemys = waveManager.InstantiateWaveEnemys(waveNum - 1, scale, waveLoopNum + 1, (waveLoopNum * 2.5f) + 1f);
            for (int i = 0; i < enemys.Length; i++)
            {
                AddEnemy(enemys[i]);
            }
            enemyNum = enemys.Length;
            //敵の全滅を確認するまでウェイト
            while (enemyNum > 0)
            {
                yield return(0);
            }
            Debug.Log("敵全滅!");
            //ウェーブ数増加
            totalWaveNum++;
            waveNum++;
            //ループの確認
            if (!waveManager.CheckWaveIndex(waveNum - 1))
            {
                Debug.Log("ループ++");
                waveLoopNum++;
                waveNum = 1;
            }
            //一定数毎にステージを大きくする
            if (totalWaveNum % 5 == 0)
            {
                scale += 20f;
                SetStageScale(scale);
            }
        }
    }