コード例 #1
0
    void WaveCompleted()
    {
        Debug.Log("wave completed");

        state         = SpawnManagerState.COUNTING;
        waveCountDown = timeBetweenWaves;
    }
コード例 #2
0
    IEnumerator SpawnWave(wave _wave)
    {
        state = SpawnManagerState.SPAWNING;

        if (_wave.count != 0)
        {
            //Finds a random spawner that is not occupied
            if (availableSpawnPoints.Count != 0 || enemyAliveList.Count >= maxEnemyAllowed)
            {
                int randomSpawnerNumber = ran.Next(0, availableSpawnPoints.Count - 1);
                int randomSpawnID       = availableSpawnPoints[randomSpawnerNumber];

                SpawnEnemy(_wave.enemy, spawnPoints[randomSpawnID].GetComponent <Enemy_Spawner>().SpawnVector2);
                _wave.count--;
                yield return(new WaitForSeconds(1f / _wave.rate));
            }
            else
            {
                Debug.Log("No Available SpawnPoint");
                yield return(new WaitUntil(() => availableSpawnPoints.Count != 0));
            }
        }

        state = SpawnManagerState.WAITING;

        yield break;
    }