Beispiel #1
0
    private IEnumerator _SpawnEnemyTimer()
    {
        while (_enemiesToLoad.Count > 0)
        {
            EnemyData enemy = _enemiesToLoad.Dequeue();

            List <EnemyData> enemies         = _enemiesToLoad.ToList();
            List <EnemyData> enemiesSpawning = new List <EnemyData>();
            enemiesSpawning.Add(enemy);

            foreach (EnemyData en in enemies)
            {
                if (en.timeToSpawn == enemy.timeToSpawn)
                {
                    enemiesSpawning.Add(en);
                    _enemiesToLoad.Dequeue();
                }
            }

            float timeToSpawn = enemy.timeToSpawn - _oldTimeToLoad;
            yield return(new WaitForSeconds(timeToSpawn));

            _oldTimeToLoad = enemy.timeToSpawn;
            foreach (EnemyData e in enemiesSpawning)
            {
                float   xPos = Screen.width * ((float)e.spawnPosition / 100);
                float   yPos = Screen.height + (Screen.height / 5);
                Vector3 pos  = Camera.main.ScreenToWorldPoint(new Vector3(xPos, yPos, 10f));

                BaseEnemy.CreateEnemy(_manager, e.name, pos);
            }
            enemiesSpawning.Clear();
        }
    }
Beispiel #2
0
 private void Awake()
 {
     GetComponent <Animator>().Play("Begin");
     StartCoroutine(TimerAim());
     _baseEnemy.CreateEnemy();
 }