因為在做游戲暫停的時候通常會使用Time.Scale = 0 ,可是暫停的時候UI如果需要繼續有動畫怎么辦呢?在DoTween中只需要設置 tweener.SetUpdate(true); 即可。意思就是這個Tween是忽略TimeScale,如果不寫的話 tweener.SetUpdate 是 false。
命名空間: using DG.Tweening;
1 void Start () 2 { 3 //讓TimeScale = 0 4 Time.timeScale = 0; 5 6 Image image = transform.Find("Image").GetComponent<Image>(); 7 //調用DOmove方法來讓圖片移動 8 Tweener tweener = image.rectTransform.DOMove(Vector3.zero,1f); 9 //設置這個Tween不受Time.scale影響 10 tweener.SetUpdate(true); 11 //設置移動類型 12 tweener.SetEase(Ease.Linear); 13 tweener.onComplete = delegate() { 14 Debug.Log("移動完畢事件"); 15 }; 16 image.material.DOFade(0,1f).onComplete = delegate() { 17 Debug.Log("褪色完畢事件"); 18 }; 19 }
Tween的移動類型有很多種,比如勻速運動、加速運動、減速運動,等等。
代碼中我們設置了圖片的移動 和 褪色,因為移動的Tween設置了忽略Time.Scale,所以代碼中Time.Scale =0時,圖片的Tween響應了位移操作,然后褪色的Tween卻沒有。