private static IEnumerator DoClip(floatTweenClip tweenClip) { float timer = 0; float leve = tweenClip.to - tweenClip.from; while (timer < tweenClip.duration) { timer += Time.deltaTime; //这样是先行变化,关键在于速度为1,而且eas模型 var p = (timer / tweenClip.duration); tweenClip.handleT(tweenClip.from + leve * tweenClip.eascingFunction(p)); yield return(new WaitForEndOfFrame()); } tweenClip.handleT(tweenClip.to); tweenClip.callBack?.Invoke(); }
/// <summary> /// 按照float进行Tween动画 /// </summary> /// <param name="tweenClip"></param> public static void DoTweenFloat(floatTweenClip tweenClip) { CoroutineHelper.StaticStartCoroutine(DoClip(tweenClip)); }
/// <summary> /// 按照float进行Tween动画 /// </summary> /// <param name="tweenClip"></param> public static void DoTween(floatTweenClip tweenClip) => DoTweenFloat(tweenClip);