예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
            }
        }