DOTween中的Time.Scale
因为在做游戏暂停的时候通常会使用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却没有。