学习 Unity DoTween 插件笔记 |
您所在的位置:网站首页 › unity匀速移动 › 学习 Unity DoTween 插件笔记 |
学习 Unity DoTween 插件笔记
1 DoTween插件的安装
直接通过Unity Asset Store进行安装,官网被公司网络策略打不开😂。 1.1 在 Asset Store 搜索 DoTween例子:对于 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 组件 设置动画操作的属性 比如设置移动 LocalMove 通过代码控制 DOTweenAnimation dOTweenAnimation = GetComponent(); // 通过代码控制动画 dOTweenAnimation.DOPlay(); 复制代码 3.13 DoTween 路径编辑器(DoTween Path)可以给主摄像机设置路径做到场景漫游效果 Shift+Command添加一个路径点 Shift+Alt删除一个路径点 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |