【Unity】DoTween插件快速上手

2024-01-10 07:51:28

DOTween是一款针对Unity的快速高效、类型安全的面向对象的补间动画引擎,并且对于C#用户做出了很多的优化。
Demo

1.DoTween安装

  1. 下载
  2. 导入DOTween插件
    • 拖入工程
    • 在Tools / Demigiant”菜单中打开DOTween 工具面板,然后从出现的面板中选择“Setup DOTween …”

2.使用

  1. 添加引用
using DG.Tweening;
  1. 获取对应组件
  2. Do:方法决定动画。
  3. Set:设置动画
  4. On:设置动画事件

3.常用

  1. 物体移动和旋转
//移动
transform.DOMove(目标点,时间);
rigidbody.DOMove(目标点,时间);

//旋转
transform.DORotate(目标点,时间);
  1. 缩放、punch函数
//缩放
transform.DOScale(目标点,时间);

//punch函数_让物体在指定时间内沿着指定方向做弹性位移动画效果。
transform.DOPunchPosition(new Vector3(方向), 持续时间, 弹性值, 振动值);
  1. 震动Shake函数
transform.DOShakePosition(震动时间,强度,频率,随机角度)
  1. 混合Blend函数
//两个动作整合在一起执行一个函数
transform.DOBlendableMoveBy(目标点,时间);

5. 材质改变颜色、透明度

Material material = GetComponent<MeshRenderer>().material;
//改变颜色
material.DOColor(Color.red, 2f);

//改变透明度
//1.Color.clear
material.DOColor(Color.clear, 2f);
//2.DOFade
material.DOFade(0, 2);

//材质颜色渐变
material.DOGradientColor(Gradient,2);

6.相机拓补

  1. 改变宽高比
camera.DOAspect(比值, 时间);
  1. 改变背景颜色
camera.DOColor(Color.red, 2);
  1. 改变相机距离
//透视模式
camera.DOFieldOfView(目标, 时间);

//正交模式
camera.DOOrthoSize(目标, 时间);
  1. 相机分屏效果
//二选一
camera.DOPixelRect(new Rect(0, 0, 500, 500), 2);  //像素
camera.DORect(new Rect(0, 0, 0.5f, 0.5f), 2);   //百分比
  1. 相机晃动效果
camera.DOShakePosition();

7.Text拓补

  1. 逐个打字效果
//SetEase(Ease.Linear)目的添加匀速效果
text.DOText("huhuhsifjiosfjiosdhjfiosd", 5).SetEase(Ease.Linear);

8.动画_队列

  1. 添加动画到队列_依次执行
Sequence sequence = DOTween.Sequence();
sequence.Append(transform.DOMove(Vector3.one, 2));
sequence.AppendInterval(1);  //添加延时
sequence.Append(transform.DOMove(new Vector3(1, 0, 0), 2));
  1. 插入动画
//如果时间存在会覆盖原先的时间
sequence.Insert(时间, transform.DOMove(-Vector3.one, 1));
  1. 队列插入方法
//1.插入法
sequence.Insert();
//2.join加入
sequence.join(方法,时间);
  1. 预添加方法用法
//会先执行
sequence.AppendInterval(1);
sequence.Prepend(transform.DOMove(Vector3.one * 2, 2));
  1. 回调函数
//按时间插入
sequence.InsertCallback(5, 方法);
//直接添加
 sequence.AppendCallback(方法);
  1. 参数设置方法及循环
//-1代表无线循环
SetLoops(循环次数,LoopType);
  1. 设置为增量运动_From
.From();
  1. 动画延时
//动画延迟3秒执行——SetDelay()
transform.DOMove(new Vector3(2f, 2f, 2f), 2).SetDelay(3);
//让物体的运动以速度为基准——原参数(速度大小)
transform.DOMove(new Vector3(2f, 2f, 2f), 2).SetSpeedBased();
  1. 设置ID及增量运动
//设置ID即通过id直接调用缓存的动画
transform.DOMove(new Vector3(2f, 2f, 2f), 2).SetId("ID");
DOTween.Play("ID");

//SetRecyclable()_是否可回收——可以直接通过id调用
transform.DOMove(Vector3.one, 10).SetRecyclable(true);

//SetRelative()_将动画给位增量运动
transform.DOMove(Vector3.one, 10).SetRelative(true);

9. 运动曲线

  1. 设置曲线模式
//1.SetEase()
transform.DOMove(Vector3.one, 10).SetEase(Ease.);

//2.结合Unity的AnimationCurve
public AnimationCurve _curve;
transform.DOMove(Vector3.one, 10).SetEase(_curve);

 

文章来源:https://blog.csdn.net/Xz616/article/details/131085322
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。