DoTween使用方法
DoTween使用方法
直接用法
可以简单的调用,this.transform.DOShakePosition(1f).SetLoops(-1,LoopType.Yoyo);这样就可以以1s的周期,无限次循环抖动了
进阶用法
主要的两个类Tweener和Sequence, 都继承自Tween。
Tweener用于动画控制。 Sequence是个容器用于储存Tweener或Sequence。
很多时候,动画需要系统性的控制,这个时候就需要Sequence,具体用法如下, 需要注意SetAutoKill(false)和Pause() 需要调用,否则动画会自动播放
1
2
3
4
5
6
7
8
9
10
11
12
Sequence twSeqMessageBox;
float animDuration = 0.5f;
public RectTransform messageBox;
private void TweenInitial()
{
twSeqMessageBox = DOTween.Sequence();
twSeqMessageBox.Join(messageBox.GetComponent<CanvasGroup>().DOFade(0.05f, animDuration));
twSeqMessageBox.Join(messageBox.DOLocalMove(new Vector3(300f, 0f, 0f), animDuration));
twSeqMessageBox.Join(messageBox.DOScale(new Vector3(0.8f, 0.8f, 1f), animDuration));
twSeqMessageBox.SetAutoKill(false);
twSeqMessageBox.Pause();
}
Join用来同时播放多个动画, Append用来依次播放每个动画.
在初始化完成后调用PlayForward()可以正向播放Sequence, 调用PlayBackwards()可以反向播放Sequence
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
一些特殊功能实现:
1.无限次往返播放UGUI位置移动的动画, 并且不受Time.Scale影响:
posY = GetComponent<RectTransform>().anchoredPosition.y;
this.GetComponent<RectTransform>().DOAnchorPosY(
posY + 5.0f, durationTime)
.SetEase(Ease.InOutQuart)
.SetLoops(-1, DG.Tweening.LoopType.Yoyo)
.SetUpdate(true);
2.无限次往返播放UGUI图片材质属性变化的动画, 并且不受Time.Scale影响:
this.GetComponent<Image>().material.DOVector(
v4+new Vector4(3.0f, 0, 0 ,0), "_OutlineStartPoint", durationTime)
.SetEase(Ease.InOutQuart)
.SetLoops(-1, DG.Tweening.LoopType.Yoyo)
.SetUpdate(true);
本文由作者按照 CC BY 4.0 进行授权