IEnumerator IE_FadeOurProcess(float duration) { var ticker = new TickHelper(); ticker.Reset(duration); yield return(null); while (ticker.Tick()) { _source.volume = ticker.GetRemainTimeInPercent(); yield return(null); } // finish fadeOut duration, call stop Stop(); }