DOTween是一款针对Unity的快速高效、类型安全的面向对象的补间动画引擎,并且对于C#用户做出了很多的优化。
Demo:
using DG.Tweening;
//移动
transform.DOMove(目标点,时间);
rigidbody.DOMove(目标点,时间);
//旋转
transform.DORotate(目标点,时间);
//缩放
transform.DOScale(目标点,时间);
//punch函数_让物体在指定时间内沿着指定方向做弹性位移动画效果。
transform.DOPunchPosition(new Vector3(方向), 持续时间, 弹性值, 振动值);
transform.DOShakePosition(震动时间,强度,频率,随机角度);
//两个动作整合在一起执行一个函数
transform.DOBlendableMoveBy(目标点,时间);
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);
camera.DOAspect(比值, 时间);
camera.DOColor(Color.red, 2);
//透视模式
camera.DOFieldOfView(目标, 时间);
//正交模式
camera.DOOrthoSize(目标, 时间);
//二选一
camera.DOPixelRect(new Rect(0, 0, 500, 500), 2); //像素
camera.DORect(new Rect(0, 0, 0.5f, 0.5f), 2); //百分比
camera.DOShakePosition();
//SetEase(Ease.Linear)目的添加匀速效果
text.DOText("huhuhsifjiosfjiosdhjfiosd", 5).SetEase(Ease.Linear);
Sequence sequence = DOTween.Sequence();
sequence.Append(transform.DOMove(Vector3.one, 2));
sequence.AppendInterval(1); //添加延时
sequence.Append(transform.DOMove(new Vector3(1, 0, 0), 2));
//如果时间存在会覆盖原先的时间
sequence.Insert(时间, transform.DOMove(-Vector3.one, 1));
//1.插入法
sequence.Insert();
//2.join加入
sequence.join(方法,时间);
//会先执行
sequence.AppendInterval(1);
sequence.Prepend(transform.DOMove(Vector3.one * 2, 2));
//按时间插入
sequence.InsertCallback(5, 方法);
//直接添加
sequence.AppendCallback(方法);
//-1代表无线循环
SetLoops(循环次数,LoopType);
.From();
//动画延迟3秒执行——SetDelay()
transform.DOMove(new Vector3(2f, 2f, 2f), 2).SetDelay(3);
//让物体的运动以速度为基准——原参数(速度大小)
transform.DOMove(new Vector3(2f, 2f, 2f), 2).SetSpeedBased();
//设置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);
//1.SetEase()
transform.DOMove(Vector3.one, 10).SetEase(Ease.);
//2.结合Unity的AnimationCurve
public AnimationCurve _curve;
transform.DOMove(Vector3.one, 10).SetEase(_curve);