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(); } }
private void Awake() { GetComponent <Animator>().Play("Begin"); StartCoroutine(TimerAim()); _baseEnemy.CreateEnemy(); }