Unity DOTween插件使用教程
DOTween 是 Unity 中一个强大且高效的动画插件,它提供了简单易用的 API 来实现各种补间动画效果。以下是 DOTween 的基本使用教程:
安装 DOTween
- 通过 Unity Asset Store 下载并导入 DOTween
- 或通过 Package Manager 安装 (Unity 2018.3+)
基本用法
1. 简单补间动画
using DG.Tweening;
// 移动物体到(3,4,5)位置,耗时2秒
transform.DOMove(new Vector3(3, 4, 5), 2f);
// 缩放物体到2倍大小,耗时1秒
transform.DOScale(2f, 1f);
// 旋转物体到(0,90,0)角度,耗时1.5秒
transform.DORotate(new Vector3(0, 90, 0), 1.5f);
2. 链式调用
transform.DOMoveX(5, 1f)
.SetDelay(0.5f) // 延迟0.5秒执行
.SetEase(Ease.OutBounce) // 设置缓动类型
.OnComplete(() => Debug.Log("移动完成")); // 完成回调
3. 序列动画
Sequence mySequence = DOTween.Sequence();
mySequence.Append(transform.DOMoveX(5, 1f));
mySequence.Append(transform.DORotate(new Vector3(0, 180, 0), 0.5f));
mySequence.PrependInterval(1f); // 在序列开始前等待1秒
常用方法
变换动画
DOMove()
/DOMoveX()
/DOMoveY()
/DOMoveZ()
DOLocalMove()
本地坐标移动DORotate()
/DOLocalRotate()
DOScale()
DOLookAt()
看向目标点
UI 动画
DOFade()
透明度动画DOColor()
颜色变化DOFillAmount()
填充量动画(常用于进度条)DOPunchPosition()
弹性动画
特殊效果
DOPunchScale()
弹性缩放DOShakePosition()
震动效果DOBlendableScaleBy()
可混合缩放
高级功能
1. 缓动函数(Ease)
// 使用不同的缓动类型
transform.DOMoveX(5, 1f).SetEase(Ease.InOutQuad);
2. 循环动画
// 循环3次
transform.DOMoveX(5, 1f).SetLoops(3);
// 无限循环,来回运动
transform.DOMoveX(5, 1f).SetLoops(-1, LoopType.Yoyo);
3. 回调函数
transform.DOMoveX(5, 1f)
.OnStart(() => Debug.Log("动画开始"))
.OnUpdate(() => Debug.Log("动画更新中"))
.OnComplete(() => Debug.Log("动画完成"));
4. 控制动画
Tween myTween = transform.DOMoveX(5, 1f);
// 暂停动画
myTween.Pause();
// 继续动画
myTween.Play();
// 停止动画
myTween.Kill();
性能优化建议
- 尽量重用 Tween 对象而不是每次都创建新的
- 对大量对象使用
DOTween.To()
进行批量处理 - 使用
SetAutoKill(false)
和SetRecyclable(true)
提高重用性 - 对不活跃的动画使用
DOTween.PauseAll()
暂停
注意事项
- 确保在物体销毁前调用
DOTween.Kill()
避免内存泄漏 - 在场景切换时可以使用
DOTween.Clear()
清理所有动画 - 注意动画的坐标系(世界坐标/本地坐标)
DOTween 功能非常丰富,以上只是基础用法。更多高级功能可以参考官方文档或社区教程。