DOTween.To(getter, setter, to, float duration)
是常用的一個變值方法(一定時間將某變數從起始值到終點值進行變化),可以便捷實現 滾分、漲進度條 等功能
但大部分用的時候都是基於 Linear 勻速曲線 進行變化的(因為沒刻意設定呀...),但也可以有緩動變化的情況,例如:
此類效果可以在Unity中配合DOTween.To()
實現,不僅可以使用內建Ease曲線型別,還可以自定義AnimationCurve曲線實現
例如根據自定義AnimationCurve曲線實現的緩動滾分效果如下:
程式碼實現
public static class NumberEffectUtility
{
public static void DoNumber(this Text numberText, int start, int end, float duration, Ease easeType = Ease.Linear)
{
DOTween.To(
() => start, //起始值
x =>
{
numberText.text = Mathf.Floor(x).ToString(); //變化值
},
end, //終點值
duration) //持續時間
.SetEase(easeType) //緩動型別
.SetUpdate(true); //不受Time.Scale影響
}
public static void DoNumber(this Text numberText, int start, int end, float duration, AnimationCurve animCurve)
{
DOTween.To(
() => start, //起始值
x =>
{
numberText.text = Mathf.Floor(x).ToString(); //變化值
},
end, //終點值
duration) //持續時間
.SetEase(animCurve) //緩動型別
.SetUpdate(true); //不受Time.Scale影響
}
}