Unity中使用DOTween實現數字滾動效果
阿新 • • 發佈:2019-02-18
0. 實現背景:
- 玩家在遊戲中獲得金幣或戰力等, 需要明顯地顯示出數字的變化, 可以採用數字滾動效果
1. 最終實現效果圖:
2. DOTween相關術語:
Tweener
- 一個
tween
控制value和animates
- 一個
Sequence
- 一個特殊的
tween
,並不是控制value,和其它的tween
一起成為一個動畫組
- 一個特殊的
Tween
- 一個普通詞,既可以表示
Tweener
也可以表示Sequence
- 一個普通詞,既可以表示
Nested tween
- 一個
tween
,包含Sequence
- 一個
- 建立一個
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數值的計時器