学习 Unity DoTween 插件笔记

您所在的位置:网站首页 unity匀速移动 学习 Unity DoTween 插件笔记

学习 Unity DoTween 插件笔记

2023-05-10 20:08| 来源: 网络整理| 查看: 265

学习 Unity DoTween 插件笔记 1 DoTween插件的安装

直接通过Unity Asset Store进行安装,官网被公司网络策略打不开😂。

1.1 在 Asset Store 搜索 DoTween

image-20230506143314991

1.2 将免费版本添加到我的资源

image-20230506143355093

1.3 通过Unity Package Manager进行安装

image-20230506143527496

2 初始化 DoTween

image-20230506143637743

image-20230506143702156

3 使用 DoTween 3.1 引入命名空间 using DG.Tweening; 复制代码 3.2 通过 DoTween 普通的插值方法 To DoTween.To(() => 初始值, 新值 => 赋值方法, 终点值, 插值时间) 复制代码

例子:对于 Vector3 进行插值

Vector3 position = Vector3.zero; // 在3秒时间将位置从(0,0,0) 到 (10,10,10)的位置 DoTween.To(()=> position,value => position = value, new Vector(10,10,10), 3); 复制代码

例子:对于 float 值进行插值

float duration = 0; // 在3秒时间将duration值从0变成了3 DoTween.To(()=> duration,value => duration = value, 3, 3); 复制代码 3.3 Transform的扩展方法

例子: 通过 DOLocalMove 进行快速的插值

public RectTransform pannelTransform; pannelTransform.DOLocalMove(Vector3.zero, 0.35f); 复制代码

DOLocalMove 是可以插值的修改 localPosition 的坐标位置。

3.4 通过 DOPlayBackwards 播放回退动画 pannelTransform.DOPlayBackwards(); 复制代码

⚠️执行 pannelTransform.DOPlayBackwards() 是没有效果的,因为执行 DOxxxx 方法是交给 DoTween 管理动画对象,动画执行完毕自动销毁。

怎么才能不让自动销毁呢?

我们可以通过接受执行 DOxxx 方法的返回值设置 AutoKill 为 false

Tweener tweener = pannelTransform.DOLocalMove(Vector3.zero, 0.35f); tweener.SetAutoKill(false); // 设置动画执行完毕不会自动销毁了 复制代码

通过执行一次 pannelTransform.DOLocalMove 创建了很多动画怎么优化呢?

可以将代码放在 Start 方法里面,防止多次创建动画

private void Start() { Tweener tweener = pannelTransform.DOLocalMove(Vector3.zero, 0.35f); tweener.SetAutoKill(false); // 设置动画执行完毕不会自动销毁了 tweener.Pause(); // 防止开始就自动播放 } 复制代码

修改点击方法

public void OnClick() { if (!isIn) { //pannelTransform.DOPlay(); ⚠️ DOPlay 这个方法只会播放一次 需要通过 DOPlayForward 和 DOPlayBackwards 一一对应 pannelTransform.DOPlayForward(); isIn = true; } else { pannelTransform.DOPlayBackwards(); isIn = false; } } 复制代码 3.5 From Tween 方法

假如我们通过 DOMoveX 方法通过 2 秒进行移动到 (5,0,0) 的位置可以进行下面写。

transform.DOLocalMoveX(5, 2) 复制代码

但是我们想从 (5,0,0) 的位置移动到 目标位置呢,这个时候就可以使用 From 方法了。

transform.DOLocalMoveX(5, 2).From() 复制代码

默认方法是从当前位置移动到目标位置,如果添加上 From 方法则变成从目标位置移动到当前位置。

3.5.1 将绝对坐标变成相对坐标

假设游戏物体的位置是 Vector(1,0,0), 执行下面的代码。

transform.DOLocalMoveX(5, 2).From() 复制代码

是将游戏物体从位置 Vector(5,0,0) 的位置动画移动到 Vector(1,0,0) 的位置,如果修改 From 的参数如下。

transform.DOLocalMoveX(5, 2).From(true) 复制代码

则变成了相对坐标,则是游戏物体从 Vector(6,0,0) 的位置动画移动到 Vector(1,0,0) 的位置。

3.6 特殊的设置 3.6.1 通过 SetEase 设置动画曲线 Tweener tweener = transform.DOLocalMoveX(0, 0.35f); tweener.SetEase(Ease.InOutExpo); 复制代码

关于 Ease 的动画类型的动画曲线请查看下面引用的链接

[]: blog.csdn.net/LM514104/ar… "Dotween SetEase Ease缓动函数"

3.6.2 通过 SetLoops 设置动画播放次数

默认是播放一次

tweener.SetLoops(2); 复制代码

如果设置为 0 则代表播放一次。

3.6.3 通过 onComplete 设置动画完毕的回调 tweener.onComplete = OnTweenComplete; void OnTweenComplete() { // 动画已经执行完毕了 } 复制代码 3.7 DoTween 的生命周期

当创建一个 DoTween 动画的时候会自动进行播放

除非你改动默认的设置 defaultAutoPlay

DoTween 执行完毕会自动的销毁

除非你改动默认的设置 defaultAutoKill

如果你想重复使用一个 DoTween 动画则需要设置 SetAutoKill

如果进行 DoTween 的游戏对象在动画的过程中为 null,则可能会发生错误。可以通过设置 useSafeMode参数进入安全模式即可。

3.8 使用 DoTween 设置文字显示动画 Text text = GetComponent(); text.DOText("这是由 DoTween 执行文本动画的文本,执行时间为 2 秒。", 2); 复制代码

DOText 参数 richTextEnabled 是否启用富文本。

3.9 屏幕震动的效果

屏幕震动的核心原理是让主相机进行随机的移动

随机震动 1 秒

transform.DOShakePosition(1); 复制代码

随机只在 X 轴上进行震动

transform.DOShakePosition(1, new Vector3(2, 0, 0)); 复制代码 3.10 颜色和透明度的动画效果 Text text = GetComponent(); 复制代码

设置颜色在 2 秒从黑色变成白色

text.DOColor(Color.white, 2); 复制代码

设置透明度在 2 秒从 1 变成 0

text.DOFade(0, 2) 复制代码 3.11 其他 Api DO 开头的都是用来开启一个动画的 Set 开头都是设置动画属性的 On 是设置动画的生命周期函数的 Init 可以对于 DoTween 设置自定义初始化 3.12 可视化使用 DoTween

这个只能 Pro 版本才可以

[]: blog.csdn.net/HP_69/artic… "免费下载 DOTween Pro v1.0.335.unitypackage"

添加 DoTween Animation 组件

image-20230506173940465

设置动画操作的属性

image-20230506174253106

比如设置移动 LocalMove

image-20230506174409537

通过代码控制

DOTweenAnimation dOTweenAnimation = GetComponent(); // 通过代码控制动画 dOTweenAnimation.DOPlay(); 复制代码 3.13 DoTween 路径编辑器(DoTween Path)

可以给主摄像机设置路径做到场景漫游效果

image-20230506175920463

Shift+Command添加一个路径点

Shift+Alt删除一个路径点

image-20230508132631357

AutoPlay 代表开始自动播放 AutoKill 代表播放完毕自动移除 Loop 设置 -1 代表循环的进行播放 Loop Type(只有 Loop = -1 才会开启) ReStart 从新开始进行运行 YoYo 像YoYo球一样的运动 Intremental 动画目标状态越来越强(具体没看出来什么效果 但是动画的位置竟然一点点的偏移) Path Type Linear 沿着点于点之间支线进行移动 Catmull Room 将点于点之间进行平滑的移动 Close Path 将起点和终点进行闭合 Local Movement 是否沿着局部坐标进行移动 Orientation 朝向 To Path 物体的朝向按照 DoTween Path 的朝向来的 Look At Transform 看向一个目标 Look At Position 看向一个点 Color 修改辅助线的颜色 Show Index 是否显示点的索引 Handle Type Full 是否显示点的X/Y/Z的方向轴 Handle Mode Orthographic 点按照通用大小 Perspective 可以修改点的大小 Reset Path 删除所有的点 WayPoints 存储了所有的点 还可以调动点的位置


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3