IEnumerator WaitAndPrint() { IEnumerable <ObstacleSettings> obstacleDif = levelGen.GetObstaclesAvailable().Except(levelGen.GetObstaclesUsed()); int[] obstableAdded = { -1, -1, -1 }; int maxSize = (3 > obstacleDif.Count()) ? obstacleDif.Count() : 3; for (int i = 0; i < maxSize; i++) { int numb = Random.Range(0, obstacleDif.Count()); if (!obstableAdded.Contains(numb)) { obstableAdded[i] = numb; levelGen.AddObstaclesUsed(obstacleDif.ElementAt(numb)); images[i].sprite = obstacleDif.ElementAt(numb).MenuSprite; } else { i--; } } pPlayerEmote.SetEmotion(emoteSelected); // suspend execution for 5 seconds yield return(new WaitForSeconds(5)); killWall.SetActive(false); pPlayerEmote.gameObject.transform.position = new Vector3(.0f, 5.0f, .0f); killWall.SetActive(true); PopUp.SetActive(false); backgroundImg.SetActive(false); health.ModifyHealth(1); levelGen.ResetLevel(); levelGen.GenerateObstacles(); levelGen.Scroll(true); scoreMan.score = 0; }