private IEnumerator _Lerp(UInt128 amount, float time) { var from = Amount; var start = DateTime.UtcNow; for (;;) { var elapsed = (float)(DateTime.UtcNow - start).TotalSeconds; var norm = animCurve.Evaluate(elapsed / time); Amount = UInt128.Lerp(from, amount, norm); yield return(null); } }
public static IEnumerator LerpAmount(this Text text, string format, string numberType, UInt128 to, float duration) { UInt128.TryParse(text.text.ToLower().Replace(",", "").Replace("$", "").Replace("x", ""), out var from); var start = DateTime.UtcNow; for (;;) { var elapsed = (float)(DateTime.UtcNow - start).TotalSeconds; var percent = Curve.Evaluate(elapsed / duration); var normed = UInt128.Lerp(from, to, percent); text.SetAmount(format, numberType, normed); if (elapsed >= duration) { yield break; } yield return(null); } }