Dotween常用方法
用到什么记录什么
Transform
Position
改变世界坐标
第一个参数是要移动到的目标点,不是移动这个向量的距离
transform.DOMove(new Vector3(1, 1, 1), 2);
只控制x轴上的移动,其他两个方向同理
transform.DOMoveX(1, 2);
改变局部坐标
- 相对当前局部坐标的移动距离
transform.DOLocalMove(new Vector3(1, 1, 1), 2);
transform.DOLocalMoveX(1, 2);
Text
颜色渐变:
text.DOColor(Color.black, 2f);
透明度渐变:
text.DOFade(0, 2f);
这里有坑:如果是对UI和Text的话,需要用
Canvas Group
的DoFade
,原因不明
Dotween常用方法
动画同时播放
Sequence:
Sequence quence = DOTween.Sequence();
添加动画到队列中:
quence.Append(transform.DOMove(Vector3.one, 2));
加入当前动画:Join会加入和让动画与当前正在执行的动画一起执
quence.Append(transform.DOScale(new Vector3(2, 2, 2), 2));
quence.Join(transform.DOMove(Vector3.zero, 2));
回调
quence.AppendCallback(CallBack);
transform.DOMove(Vector3.one, 2).OnComplete(() => { });
quence 的
OnComplete
没有回调
Ease 运动曲线
transform.DOMove(Vector3.one, 2).SetEase(Ease.Linear, 3, 0f);
直接设置线性运动效果
实例方法
_tweener = transform.DOMove(Vector3.one, 2);
中断 Dotween
Dotween 开始进行会默认执行完当前动画,如果需要中断需要手动 Kill
Sequence 单纯
DOTween.Kill (transform)
无效需要置空处理,类似于对于协程中断开始的处理
- 对 Sequence 置空,置空才开始新的动画,Kill 当前 Dotween
- 或者
mySequence.Kill()
1 | private Sequence sequence; |
KillAll()
:会停止当前场景所有执行的Dotween,只有在切换场景时使用,一般情况下killSequece
即可
From:https://stackoverflow.com/questions/37214649/how-to-kill-current-running-dotween-sequence-in-unity3d
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 五里霧中!