DOTween的一些基本用法

  • Post author:
  • Post category:其他



说明:参照Siki学院Andy老师的课程整理的关于DOTween的一些比较常用的方法,再次感谢老师的讲解


适合看的人呢:稍微知道这个插件是干嘛的就行O(∩_∩)O,至少我觉得是

由于前面有些没有记,也是些比较基本的,就直接放图片了,


shake

是震动


blend

是类似混合动画,将两个动画进行混合。而且是个增量。



Material

Material m = GetComponent<MeshRenderer>().material;

m.DoColor(Color.red,2);

//这个的基础是物体的Shader中有Main Color这个属性的,没有的话不能改变,是有解决办法的,下面:

m.DoColor(Color.red,”_TintColor”,2);

//””中的是颜色的名字


改变材质的透明度

m.DoColor(Color.Clear,2);

m.DoFade(0,2);

public Gradient _gradient;

m.DoGradientColor(_gradient,2);

//只是渐变颜色


//Gradient 是什么呢,定义了之后出来的,,上头那个是透明度,下头的标记是颜色

m.DoVector();

//改变Shader中四维向量的值

m.DoBlendableColor(Color.red,2);

//混合颜色

m.DoBlendableColor(Color.yellow,2);



Camera

Camera c = GetComponent<Camera>();

c.DoAspect(1);

//改变相机的宽高比(宽/高),1的时候就是个正方形

c.DoColor(Color.red,2);

//改变相机背景颜色

c.DoNeraClipPlane();

//改变相机近切面和远切面的值

c.DoFarClipPlane();

c.DOFieldOfView(1,5);

//相机张开的角度,可以用这个实现倍镜效果,越小物体越大

c.DOOrthoSize();

//改变相机正交大小


//相机分屏

c.DOPiexelRect(new Rect(0,0,500,500),2);

//改变相机视域,头两位的0,0,代表坐标,从哪开始算

c.DoRect();

//按百分比显示


//相机晃动

c.DOShakePosition(2,10,20);



Text

Text t = GetCompoent<Text>();

DoColor/DOFade/DOBlendableColor

t.DoText(“aaaaaaaa”,0.5f);

//让字一个字一个字的弹出,后面加上 “.SetEase(Ease.Linear);”匀速弹出



队列

Sequence quence = DOTween.Sequence();

quence.Append(transform.DOMove(Vector3.one,2));

//0-2s

quence.Join(transform.DOScale(Vector3.one*2,2));

//加入到上一个方法同时执行

quence.AppendInterval(1);

//添加延时//2-3s

quence.Append(transform.DOMove(new Vector3(1,0,0),2));

//3-5s

quence.Insert(0,transform.DOMove(-Vector3.one,2));

//插入一个动画,第一个参数是所在的时间,跟上头一块用的时候会把0-2s的动画覆盖掉,执行插入的这个动画,ps:这个插入可以不同类型的同时执行,比如边位移边放大

quence.Prepend(transform.DOMove(-Vector3.one*2,2));

//预添加,添加到Append之前,后添加的先执行


//队列回调函数

quence.InsertCallback(5,InsertCakkBack);

//1,插入的时间点2,回调函数………第五秒执行那个函数

private void InsertCakkBack(){Debug.Log(“1235497”);}


同样的,还有AppendCallback/PrependCallback



设置参数

.SetLoops();

//1、循环次数,-1无限循环,2、LoopType

.SetAutoKill(true);

//自动缓存

.From();

//返回起始点,如果添加参数True,作为增量运动,就是起始点与目标点一样依旧会运动

.SetDelay(3);

//设置延时

.SetSpeedBased();

//让物体运动以速度为基准,原先代表时间的现在就代表速度了,参数true代表以速度为基准


//调用缓存

.SetId(“ID”);

//先设置ID

.DoTween.Play(“ID”);

.SetRelative(true);

//相对运动,也就是增量运动


//设置帧函数

.SetUpdate(UodateType,true

//不受Unity中TimeScale影响

)



Ease(

http://robertpenner.com/easing/easing_demo.html


transfrom.DOMove(Vector3.one,2).SetEase(Ease.InBack);

//括号中的网站找就行了


添加自己可以调节的一个曲线

public AnimationCurve _curve;

transfrom.DOMove(Vector3.one,2).SetEase(_curve);



回调函数


//动画完成时执行的函数

transform.DOMove(Vector3.one,2).OnComplete();


//动画被杀死的时候

transform.DOMove(Vector3.one,2).OnKill();


//动画play的时候

transform.DOMove(Vector3.one,2).OnPlay();


//动画暂停的时候

transform.DOMove(Vector3.one,2).Onpause();


//动画第一次执行的时候

transform.DOMove(Vector3.one,2).OnStart();


//动画循环的时候,每循环完一次的时候都会调用一次

transform.DOMove(Vector3.one,2).OnStepComplete();


//动画运行的时候

transform.DOMove(Vector3.one,2).OnUpdate();


//动画重新播放的时候,比如:restart、rewind、doflip、dobackward

transform.DOMove(Vector3.one,2).OnRewind();



控制函数

DOPause()//暂停

DOPlay()//播放

DORestart()//重播

DORewind()//倒播

DOKill()//杀死

DOFlip()//翻转补间,就是目标点和终点位置互换

DOGoto()//跳转到时间点位置并且是否播放;

DOPlayBackwards()//反向播放动画,跟flip差不多

DOPlayForwaed()//正向

DOTogglePause()//如果在暂停的时候运行就是播放,在播放的时候就是暂停



版权声明:本文为ztysmile原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。