public IEnumerator DestroyAfterimages() { var spacingNote = Note.Thirtysecond; var spacingTime = Conductor.noteDurations[spacingNote]; var startNote = Note.Quarter; var start = Conductor.GetNextNote(startNote); var end = start + Conductor.noteDurations[spacingNote] * afterimages.Count; PlayerSfx.PlayDashSfx(start, end); for (int i = 0; i < afterimages.Count; i++) { var targetTime = start + i * spacingTime; afterimages[i].Run(targetTime); } yield return(new WaitForNote(startNote)); Destroy(gameObject); }