【Unity】Get started quickly with the DoTween plug-in

DOTween is a fast, efficient, type-safe object-oriented tweening animation engine for Unity, and has made many optimizations for C# users.
Demo :

1.DoTween installation

  1. download
  2. Import DOTween plug-in
    • Drag into project
    • Open the DOTween tool panel in the Tools / Demigiant menu and select "Setup DOTween..." from the panel that appears.

2.Use

  1. Add citation
using DG.Tweening;
  1. Get the corresponding component
  2. Do: The method determines the animation.
  3. Set: set animation
  4. On: Set animation event

3. Commonly used

  1. Objects move and rotate
//移动
transform.DOMove(目标点,时间);
rigidbody.DOMove(目标点,时间);

//旋转
transform.DORotate(目标点,时间);
  1. Zoom and punch functions
//缩放
transform.DOScale(目标点,时间);

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

5. Material changes color and transparency

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.Camera topology

  1. Change aspect ratio
camera.DOAspect(比值, 时间);
  1. Change background color
camera.DOColor(Color.red, 2);
  1. Change camera distance
//透视模式
camera.DOFieldOfView(目标, 时间);

//正交模式
camera.DOOrthoSize(目标, 时间);
  1. Camera split screen effect
//二选一
camera.DOPixelRect(new Rect(0, 0, 500, 500), 2);  //像素
camera.DORect(new Rect(0, 0, 0.5f, 0.5f), 2);   //百分比
  1. camera shake effect
camera.DOShakePosition();

7.Text extension

  1. One by one typing effect
//SetEase(Ease.Linear)目的添加匀速效果
text.DOText("huhuhsifjiosfjiosdhjfiosd", 5).SetEase(Ease.Linear);

8. Animation_Queue

  1. Add animation to queue_execute sequentially
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. Insert animation
//如果时间存在会覆盖原先的时间
sequence.Insert(时间, transform.DOMove(-Vector3.one, 1));
  1. Queue insertion method
//1.插入法
sequence.Insert();
//2.join加入
sequence.join(方法,时间);
  1. Pre-added method usage
//会先执行
sequence.AppendInterval(1);
sequence.Prepend(transform.DOMove(Vector3.one * 2, 2));
  1. Callback
//按时间插入
sequence.InsertCallback(5, 方法);
//直接添加
 sequence.AppendCallback(方法);
  1. Parameter setting methods and loops
//-1代表无线循环
SetLoops(循环次数,LoopType);
  1. Set to incremental motion_From
.From();
  1. animation delay
//动画延迟3秒执行——SetDelay()
transform.DOMove(new Vector3(2f, 2f, 2f), 2).SetDelay(3);
//让物体的运动以速度为基准——原参数(速度大小)
transform.DOMove(new Vector3(2f, 2f, 2f), 2).SetSpeedBased();
  1. Set ID and incremental motion
//设置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. Motion curve

  1. Set curve mode
//1.SetEase()
transform.DOMove(Vector3.one, 10).SetEase(Ease.);

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

 

Guess you like

Origin blog.csdn.net/Xz616/article/details/131085322