Пример #1
0
        //Debug Spawn
        void Update()
        {
            if (Input.GetKeyDown(KeyCode.V))
            {
                SpawnEnemies();
            }

            //Remove Dead Ones
            LastEnemyDied = false;
            for (int i = aliveEnemies.Count - 1; i >= 0; --i)
            {
                IHittable enemy = aliveEnemies[i];
                if (enemy.IsDead())
                {
                    enemiesKilled++;
                    if (stageListing.IsEndlessMode())
                    {
                        score.value += enemy.GetScore();
                    }
                    enemy.PlaySound(enemyKilledSound);
                    aliveEnemies.RemoveAt(i);
                    if (NoEnemiesToSpawn())
                    {
                        LastEnemyDied = true;
                    }
                }
            }

            //Spawn From Stage Listing
            if (useStageListing)
            {
                if (toBeSpawnedEnemies != null)
                {
                    if (toBeSpawnedEnemies.Count > 0 && aliveEnemies.Count < maxAlive)
                    {
                        if (!stageListing.IsEndlessMode())
                        {
                            //Regular Spawning
                            SpawnEnemy(toBeSpawnedEnemies[toBeSpawnedEnemies.Count - 1]);
                            toBeSpawnedEnemies.RemoveAt(toBeSpawnedEnemies.Count - 1);
                        }
                        else
                        {
                            //Endless Spawning
                            SpawnEnemy(toBeSpawnedEnemies[Random.Range(0, toBeSpawnedEnemies.Count)]);
                        }
                    }
                }
            }
        }