IEnumerator FreezeEnemies(List <GameObject> targetObjects) { Debug.Log("Freezing " + targetObjects.Count + " Enemies."); while (targetObjects.Count > 0) { //Freeze Animation particles.GetComponent <ParticleSystem>().Play(); foreach (var target in targetObjects) { EnemyAI enemy = target.GetComponent <EnemyAI>(); if (enemy.isActiveAndEnabled) { enemy.ApplyFreezeEffect(); } } yield return(new WaitForSeconds(timePerShot)); } }