Dotween

本文详细介绍DOTween插件在Unity中的高级应用技巧,包括位置动画控制、动画曲线设置、屏幕震动、颜色动画、对话框文字动画等。并介绍如何通过DOTweenPath组件进行动画路径编辑,以及动画组件的可视化创建方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将插件package包导入,得到Demigiant文件夹,将此文件夹放在Plugins文件夹里
using DGTweening
DOTween.To(() => transform.position, x => transform.position = x, new Vector3(9, 9, 9), 3);
插件将一些常用的类进行了扩展,增加了一些方法,testPanelTran.DOLocalMove(new Vector3(0, 0, 0), 3);
在插件方法控制位置的时候,其他对位置修改的方法无效
每次调用DO类型的方法,都会创建一个Tweener对象来保存动画信息,默认动画播放完会被销毁。如果不想让动画被销毁通过 myMove.SetAutoKill(false) 来设置
Tweener myMove=testPanelTran.DOLocalMove(new Vector3(0, 0, 0), 3);myMove.SetAutoKill(false);这两句放在Start内,避免多次调用DO方法时,多次创建动画,造成资源浪费,但是还得加一句myMove.Pause()来保证一开始不会播放
myMove.PlayForward();h和myMove.PlayBackwards();控制前放和倒放
06-From Tweens
transform.DOMoveX(5, 2); //默认从当前值到目标值
transform.DOMoveX(5, 2).From(); //从目标值到当前值
transform.DOMoveX(5, 2).From(true); //这里的5就是一个增量,当前值加上这个增量才是目标值
07-动画曲线和事件函数
myMove.SetEase(Ease.InOutBounce); //设置动画的缓动曲线,具体种类百度
myMove.SetLoops(2); //设置动画循环次数
myMove.OnComplete(PrintTest);//动画播放完成后(所有次数完成)触发函数(不带括号)
08-动画的生命周期和生命周期函数
当你创建动画时会自动播放,除非在Tools的Pereference设置
当动画播放完会被自动销毁,除非更改设置或通过方法设置
动画目标不存在时会报错,为了防止这种情况需要设置安全模式
OnComplete就是一个生命周期函数,还有许多种
OnPlay每一遍播放时触发
OnStart开始播放触发
09-对话框文字动画
conversationText.DOText(“这里是DOTween插件里的文字效果”, 1);
10-屏幕震动效果
对摄像机做动画
transform.DOShakePosition(1,new Vector3(1,1,0));
持续时间,在指定轴上的振动强度
11-颜色和透明度动画
nameText.DOColor(Color.red, 5);
nameText.DOFade(1, 3); //初始alpha值设置为0,终点值为1,历时3s
13-动画的组件可视化创建方式
添加组件DOTween Animation可以实现具体动画参数在面板上调节
14-DoTweenPath路径编辑器的使用
添加组件DOTween Path

### Dotween Unity Tweening Engine 文档和使用示例 Dotween 是一个功能强大且易于使用的 Unity 动画库,用于创建平滑的动画效果。以下是一些关键功能和用法示例: #### 1. 创建和应用 Tween 设置 可以使用 `SetAs()` 方法将一个 Tween 的设置复制到另一个 Tween 中[^1]。例如: ```csharp // 创建一个带有特定设置的 Tween 并存储为 Tween 对象 Tween myTween = transform.DOMove(new Vector3(2, 2, 2), 2) .SetEase(Ease.OutQuint) .SetLoops(4) .OnComplete(myFunction); // 创建另一个 Tween,并应用上一个 Tween 的相同设置 material.DOColor(Color.red, 2).SetAs(myTween); ``` #### 2. 使用 AnimationReferenceAsset 如果需要在项目中引用动画资源,可以结合 `AnimationReferenceAsset` 和 Dotween 使用[^2]。例如: ```csharp public AnimationReferenceAsset animationReferenceAsset; // 在指定轨道上设置动画并启用循环 TrackEntry entry = skeletonAnimation.AnimationState.SetAnimation(trackIndex, animationReferenceAsset, true); ``` #### 3. 设置 Tween 不受 Time.timeScale 影响 通过 `SetUpdate(true)` 方法,可以让 Tween 忽略 Unity 的时间缩放设置[^3]。例如: ```csharp void Start() { // 让 Time.timeScale = 0 Time.timeScale = 0; Image image = transform.Find("Image").GetComponent<Image>(); // 调用 DOMove 方法让图片移动,并设置不受 Time.timeScale 影响 Tweener tweener = image.rectTransform.DOMove(Vector3.zero, 1f); tweener.SetUpdate(true); // 忽略 Time.timeScale tweener.SetEase(Ease.Linear); // 设置线性移动类型 } ``` #### 4. 撤消 Tween 可以通过 `Rewind()` 方法撤消 Tween 动画[^4]。例如: ```csharp // 撤消所有 Tween DOTween.Rewind(); // 根据指定 ID 撤消 Tween DOTween.Rewind(myId); // 撤消引用的 Tween myTween.Rewind(); // 撤消与特定 Transform 相关的所有 Tween transform.DORewind(); ``` #### 5. 全局或特定设置 Dotween 提供了多种全局或特定的设置选项,可以根据需求调整动画行为[^4]。 --- ### 示例代码总结 以下是一个综合示例,展示如何使用 Dotween 创建和管理 Tween 动画: ```csharp using UnityEngine; using DG.Tweening; public class DOTweenExample : MonoBehaviour { void Start() { // 创建一个移动动画 Tween moveTween = transform.DOMove(new Vector3(2, 2, 2), 2) .SetEase(Ease.OutQuint) .SetLoops(4) .OnComplete(() => Debug.Log("Move Completed")); // 创建一个颜色变化动画,并应用上一个 Tween 的设置 Renderer renderer = GetComponent<Renderer>(); Tween colorTween = renderer.material.DOColor(Color.red, 2).SetAs(moveTween); // 忽略 Time.timeScale moveTween.SetUpdate(true); // 撤消所有 Tween DOTween.Rewind(); } } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值