1. 程式人生 > >Unity中使用DOTween實現數字滾動效果

Unity中使用DOTween實現數字滾動效果

0. 實現背景:

  • 玩家在遊戲中獲得金幣或戰力等, 需要明顯地顯示出數字的變化, 可以採用數字滾動效果

1. 最終實現效果圖:

這裡寫圖片描述

2. DOTween相關術語:

  • Tweener
    • 一個tween控制value和animates
  • Sequence
    • 一個特殊的tween,並不是控制value,和其它的tween一起成為一個動畫組
  • Tween
    • 一個普通詞,既可以表示Tweener也可以表示Sequence
  • Nested tween
    • 一個tween,包含Sequence
  • 建立一個Tweener的通用方法
    • getter: 處理Tweener返回的值, 可以是匿名方法lambda表示式
    • setter: 設定Tweener的初始值, 可以是匿名方法或lambda表示式
    • to: Tweener的目標值
    • duration: Tweener的週期, 數值越小, 動畫實現越快

3. 實現方法

3.1 建立一個Sequence並設定它的SetAutoKill屬性為false, 防止它實現一次滾動動畫之後就自動銷燬.

//宣告
private Sequence mScoreSequence;
//函式內初始化
mScoreSequence = DOTween.Sequence();
//函式內設定屬性
mScoreSequence.SetAutoKill(false);

3.2 當資料更新時, 呼叫該介面負責處理該資料的方法, 此時用新的資料建立一個Tweener

, 並加入動畫序列中

mScoreSequence.Append(DOTween.To(delegate (float value) {
    //向下取整
    var temp = Math.Floor(value);
    //向Text元件賦值
    currentScoreText.text = temp + "";
}, mOldScore, newScore, 0.4f));
//將更新後的值記錄下來, 用於下一次滾動動畫
mOldScore = newScore;

4. 專案地址

5. 其它實現效果和方法:

  • 定製數字滾動時間和數字變化次數
    • 計算新舊資料的差值,
    • 根據滾動次數來計算每次變化的資料差值
    • 根據滾動時間和滾動次數計算出單次資料滾動的時間間隔, 往TimerManager(需要另外實現)中新增更新UI數值的計時器

6. 參考: