欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > Unity DoTween笔记

Unity DoTween笔记

2025/5/7 19:42:10 来源:https://blog.csdn.net/2302_76776557/article/details/147022843  浏览:    关键词:Unity DoTween笔记

 1. DOTween 基础

基本语法

// 基本补间动画
transform.DOMove(new Vector3(2, 2, 2), 1f);// 链式调用
transform.DOMoveX(2, 1f).SetEase(Ease.OutQuad).SetDelay(0.5f);

2. 常用动画类型

变换动画

// 移动
transform.DOMove(new Vector3(1, 2, 3), 1f);
transform.DOLocalMove(new Vector3(1, 2, 3), 1f);// 旋转
transform.DORotate(new Vector3(0, 90, 0), 1f);
transform.DOLocalRotate(new Vector3(0, 90, 0), 1f);// 缩放
transform.DOScale(new Vector3(2, 2, 2), 1f);
transform.DOScaleX(2, 1f); // 仅X轴

UI 动画

// 图像/文本颜色
image.DOColor(Color.red, 1f);
text.DOColor(Color.blue, 1f);// 透明度
canvasGroup.DOFade(0, 1f);// UI元素移动
rectTransform.DOAnchorPos(new Vector2(100, 100), 1f);

其他动画

// 材质属性
material.DOColor(Color.green, "_Color", 1f);
material.DOFloat(1, "_Glow", 1f);// 数值变化
DOTween.To(() => health, x => health = x, 100, 1f);

3. 动画控制

动画参数设置

// 设置缓动类型
.SetEase(Ease.InOutQuad)// 设置延迟
.SetDelay(0.5f)// 设置循环
.SetLoops(3, LoopType.Yoyo)// 设置自动杀灭
.SetAutoKill(false)// 设置速度而非持续时间
.SetSpeedBased()

动画控制方法

Tween myTween = transform.DOMoveX(5, 1f);// 暂停/继续
myTween.Pause();
myTween.Play();// 重启
myTween.Restart();// 完成动画
myTween.Complete();// 杀灭动画
myTween.Kill();

4. 高级功能

序列动画

Sequence mySequence = DOTween.Sequence();
mySequence.Append(transform.DOMoveX(5, 1f));
mySequence.Append(transform.DORotate(new Vector3(0, 90, 0), 1f));
mySequence.PrependInterval(0.5f); // 在序列开始前添加延迟
mySequence.Insert(0.5f, transform.DOScale(2, 1f)); // 在0.5秒时插入动画

回调函数

transform.DOMoveX(5, 1f).OnStart(() => Debug.Log("动画开始")).OnComplete(() => Debug.Log("动画完成")).OnUpdate(() => Debug.Log("动画更新中"));

路径动画

Vector3[] path = new Vector3[] { new Vector3(0, 0, 0),new Vector3(1, 1, 0),new Vector3(2, 0, 0)
};transform.DOPath(path, 1f, PathType.CatmullRom).SetOptions(true) // 闭合路径.SetLookAt(0.01f); // 使对象朝向移动方向

5. 性能优化

  1. 重用 Tween:使用 SetAutoKill(false) 和 Restart() 重用 Tween

  2. 使用静态方法DOTween.To() 比扩展方法更高效

  3. 合理使用 Update 类型:根据需求设置 SetUpdate(true) 使用非时间缩放更新

  4. 批量杀灭:使用 DOTween.KillAll() 或 DOTween.Clear() 谨慎清理

6. 注意事项

  1. 在对象销毁时,相关的 Tween 会自动杀灭

  2. 可以使用 DOTween.defaultAutoPlay = AutoPlay.None; 设置默认不自动播放

  3. 通过 DOTween.SetTweensCapacity(500, 50); 预设容量提高性能

DOTween 的强大之处在于它的简洁性和灵活性,几乎可以为 Unity 中的任何属性创建动画效果。通过组合基本动画和序列,可以创建出复杂的动画效果而无需编写大量代码。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词