Dotween使用手册

命名空间 using DG.Tweening;

DOTween是一个快速、高效、完全类型安全的面向对象的Unity动画引擎,免费和开源,便于开发者实现多种动画表现。

UI

Image

方法

描述

DOFade(float to,float duration)

控制Image的alpha值(0~1),表现淡入淡出效果

DOColor(Color to,float duration)

在duration时间内,改变Image的Color

DOFillAmount(float to,float duration)

在duration时间内,改变Image的Fill Amount

DOGradientColor(Gradient to,float duration)

根据给定的颜色梯度 to,在duration时间内实现Image的颜色渐变

DOBlendableColor(Color to,float duration)

混合控制Image的颜色变化

Slider

方法

描述

DOValue(float to,float duration,bool snapping)

在duration时间内将slider的value变化为to,snapping是可选项

Text

方法

描述

DOColor(Color to,float duration)

在duration时间内,改变Text的Color 为To

DOFade(float to,float duration)

在duraiton时间内,改变Text的alpha的值(0~1)

DOText(string to,float duration,bool richTextEnabled..)

在duration时间内,逐步显示to的内容,可以实现打字显示效果,可以支持富文本

DOBlendableColor(Color to,float duration)

混合控制Text的颜色变化

Outline

方法

描述

DOColor(Color to,float duraiton

改变outline的颜色

DOFade(float to,float duration)

改变outline的alpha值(0~1)

Transform

移动

方法

描述

DOMove(Vector3 to,float duration,bool snapping)

在duration时间内从当前位置移动到位置to。snapping是可选项,当为true时,平滑地将所有值对齐为整数,运动会不平滑

DOMoveX/DOMoveY/DOMoveZ(float to,float duration,bool snapping)

在duration时间内,在X/Y/Z轴方向上移动 to的距离,snapping用法同上

DOLocalMove(Vector3 to,float duration,bool snapping)

在duration时间内将局部位置移动到位置to。

DOLocalMoveX/DOLocalMoveY/DOLocalMoveZ(float to,float duration,bool snapping)

在duration时间内,在X/Y/Z轴方向上将局部坐标移动 to的距离

跳跃

方法

描述

DOJump(Vector3 endValue,float jumpPower,int numJumps,float duration,bool snapping)

endValue 最终要跳跃到的位置

jumpPower 跳跃的强度,决定跳跃的高度(当前位置Y加上该值)

numJumps 跳跃的次数

duration 总持续时间

DOLocalJump(Vector3 endValue,float jumpPower,int numJumps,float duration,bool snapping)

相对于局部坐标跳跃,含义同上

旋转

方法

描述

DORotate(Vector3 to,float duration,RotateMode mode)

to 旋转目标值

duration 旋转用时

RotateMode

Fast 旋转采用最短路线,切旋转不会超过360° FastBeyond360 旋转将超过360°

WorldAxisAdd 类似于使用transform.Rotate(new Vector3(20, 0, 0),Space.World),最终值始终被视为相对值

LocalAxisAdd 类似于使用transform.Rotate(new Vector3(20, 0, 0),Space.Self),最终值始终被视为相对值

DORotateQuaternion(Quaternion to,float duration)

to 要旋转到的四元数值

duration 旋转用时

DOLocalRotate(Vector3 to,float duration,RotateMode mode)

借助欧拉角旋转局部坐标

DOLocalRotateQuaternion(Quaternion to,float duration)

借助四元数旋转局部坐标

DOLookAt(Vector3 towards,float duration,AxisConstraint axisConstraint,Vector3 up)

旋转目标使其朝向指定位置

towards 朝向目标位置

duration 旋转总用时

axisConstraint 只旋转此轴

up 定义向上方向的向量

DODynamicLookAt(Vector3 towards,float duraion,AxisConstraint axisConstraint,Vector3 up)

旋转目标,使其朝向给定位置,每帧更新 lookAt 位置(与此相反,当补间开始时,只计算一次 lookAt 旋转)

缩放

方法

描述

DOScale(float to,float duration)

在duration时间内,将物体缩放to倍数

DOScale(Vector2 to,float duration)

在duration时间内,将尺寸设置为to

DOScaleX/DoScaleY/DoScaleZ(float to,float duration)

在X/Y/Z轴方向上进行缩放

Punch

方法

描述

DOPunchPosition(Vector3 punch,float duration,int vibrato,float elasticity,bool snapping)

受到冲击后的回弹效果

punch 要被击打到的最远位置和方向

duration 冲击持续时间

vibrato 物体振动频率

elasticity 值一般在0到1之间

DOPunchRotation(Vector3 punch,float duration,int vibrato,float elasticity)

受到冲击后旋转效果

DOPunchScale(Vector3 punch,float duration,int vibrato,float elasticity)

受到冲击后实现弹性缩放效果

Shake

方法

描述

DOShakePosition(float duration,float strength,int vibrato,float randomness,bool snapping,bool fadeOut)

使物体局部位置发生抖动

duration 抖动持续时间

strength 抖动强度

vibrato 振动频率

randomness 表示多大的震动将是随机的

DOShakePosition(float duration,Vectort3 strength,int vibrato,float randomness,bool snapping,bool fadeOut)

同上,使用Vector3代替float,可以自定义每个轴上的抖动强度

DOShakeRotation(float duration,float/Vector3 strength,int vibrato,float randomness,bool fadeOut)

使物体局部位置发生旋转抖动

DOShakeScale(float duration,float/Vector3 strength,int vibrato,float randomness,bool fadeOut)

使物体局部尺寸发生缩放抖动

Path

方法

描述

DOPath(

Vector3[] waypoints,

float duration,

PathType pathType,

PathMode pathMode,

int resolution,

Color gizmoColor)

waypoints: 是提供路径上点的坐标,需要按顺序添加进数组

duration:路径动画的整体持续时间

pathType:路径类型(就是点于点之间路径连线的生成方式)

     它内部预定义了两种类型

      Linear:直线

      CatmullRom:曲线

pathModel: 路径模式(用于确定正确的LookAt方向)

     它内部定义了四种类型

      Ignore:忽略此参数和设置的LookAt参数

      Full3D:在3d场景下,代表物体可以看向任何方向

      TopDown2D:代表物体只能上下旋转,看向物体

      Sidescroller2D:代表物体只能左右旋转看向物体

resolution:路径分辨率,代表路径点之间的曲线由多少个点构成,也就是点越多,曲线就越圆,此参数在直线路径类型下无效

gizmoColor:在Scene视图中,生成的路径曲线的颜色

DOLocalPath()

Blend Tweens 混合动画

方法

描述

DOBlendableMoveBy(Vector3 by,float duration,bool snapping)

动画控制一个物体的位置移动,在某种程度上,允许其他的DOBlendableMove动画进行混合工作在同一个目标上,而不是使用多个DOMove时造成干扰。

DOBlendableLocalMoveBy()

混合控制局部位置的动画

DOBlendableRotateBy(Vector3 by,float duration,RotateMode mode)

混合控制一个物体的旋转动画

DOBlendableLocalRotateBy(Vector3 by,float duration,RotateMode mode)

混合控制一个物体的局部位置的旋转动画

DOBlendableScaleBy(Vector3 by,float duration)

混合控制一个物体的缩放动画

material

方法

描述

DOColor(Color to,float duration)

控制材质中颜色的变化

DOColor(Color to,int propertyID,float duration)

DOColor(Color to,string propertyID,float duration)

DOFade(float to,float duration)

控制材质中alpha变化

DOFade(float to,string property,float duration)

DOFade(flaot to,int propertyID,float duration

      1)改变颜色
        material.DOColor(Color.black, 2);
        
      2)按照shader的属性名,修改颜色
        material.DOColor(Color.clear, "_Color", 2);
        
      3)修改alpha值
        material.DOFade(0, 2);
        
      4)颜色渐变
        Gradient是unity的渐变编辑器(下面有渐变编辑器的图)
        material.DOGradientColor(Gradient, "_Color", 3);
        
      5)改变材质offset的值
        material.DOOffset(new Vector2(1, 1), 2);
        
      6)改变提供的shader属性的名称对应的Vector4值
        material.DOVector(new Vector4(0, 0, 0, 1), "_Color", 3);
        
      7)颜色混合
        跟位置混合动画同理,可以同时执行而不干扰,产生混合在一起的颜色
        material.DOBlendableColor(Color.red, "_Color", 3);

Rigidbody

方法

描述

DOMove(Vector3 to,float duration)

移动位置到指定位置

DOMoveX/DOMoveY/DOMoveZ(float to,float duration)

在x/y/z轴方向上移动距离

DOJump(Vector3 endValue,float jumpPower,int numJumps,float duration,bool snapping)

endValue 最终要跳跃到的位置

jumpPower 跳跃的强度,决定跳跃的高度(当前位置Y加上该值)

numJumps 跳跃的次数

duration 总持续时间

DORotate(Vector3 to,float duration,RotateMode mode)

to 旋转目标值

duration 旋转用时

RotateMode

Fast 旋转采用最短路线,切旋转不会超过360° FastBeyond360 旋转将超过360°

WorldAxisAdd 类似于使用transform.Rotate(new Vector3(20, 0, 0),Space.World),最终值始终被视为相对值

LocalAxisAdd 类似于使用transform.Rotate(new Vector3(20, 0, 0),Space.Self),最终值始终被视为相对值

DOLookAt(Vector3 towards,float duration,AxisConstraint axisConstraint,Vector3 up)

旋转目标使其朝向指定位置

towards 朝向目标位置

duration 旋转总用时

axisConstraint 只旋转此轴

up 定义向上方向的向量

Rigidbody 2D

DOMove(Vector2 to,float duration)

移动位置到指定位置

DOMoveX/DOMoveY/DOMoveZ(float to,float duration)

在x/y/z轴方向上移动距离

DOJump(Vector2 endValue,float jumpPower,int numJumps,float duration,bool snapping)

endValue 最终要跳跃到的位置

jumpPower 跳跃的强度,决定跳跃的高度(当前位置Y加上该值)

numJumps 跳跃的次数

duration 总持续时间

DORotate(float toAngle,float duration)

Camera

方法

描述

DOAspect(float to,float duration)

改变相机的宽高比

DOColor(Color to,float duration)

改变相机的背景颜色

DOFieldOfView(float to,float duration)

改变相机视野Field Of View(1~179)

DOShakePosition(float duration,float/Vector3 strength,int vibrato,float randomness,bool fadeOut)

实现相机抖动

DOShakeRotation(float duration,float/Vector3 strength,int vibrato,float randomness,bool,fadeOut)

实现相机旋转形式的的抖动

DOOrthoSize(float to,float duration)

实现在正交视角下,控制相机事业大小

DONearClipPlane(float to,float duration)

改变相机的近从裁剪平面

Light

方法

描述

DOColor(Color to,float duration)

在duration时间内,将光源的颜色改为to

DOIntensity(float to,float duration)

在duration时间内,将光源强度改为to

DOShadowStrength(float to,float duration)

改变阴影强度为to(0~1)

DOBlendableColor(Color to,float duration)

混合改变灯光颜色动画

Audio

方法

描述

DOFade(float to,float duration)

控制Audiosource的音量大小

DOPitch(float to,float duration)

控制Audiosource的音调大小

Sequence

序列动画

方法

描述

Sequence mySequence=DOTween.Sequence();

声明一个序列

Append()

在序列末尾添加补间动画

AppendInterval(float interval)

暂停interval的时间

Insert(float atPosition,Tween tween)

在给定的时间位置插入给定的补间,从而允许您重叠补间,而不是一个接一个地放置它们。

Join(Tween tween)

加入一个动画,将会和上一个补间动画同时进行

AppendCallback(function)

在序列中添加一个回调函数

InsertCallback(float atPosition,function)

在指定时间节点添加回调函数

Sequence sq = DOTween.Sequence();
sq.Append(cube.transform.DOMoveY(3, 2));
sq.AppendCallback(Speak);
sq.Join(cube.transform.DORotate(new Vector3(0, 180, 0), 2f));
sq.AppendCallback(Pause);
sq.AppendInterval(1);
sq.Append(cube.transform.DOScale(2, 2));
sq.InsertCallback(7, Scale);
sq.Insert(0, cube.transform.DOMoveX(3, 2));

Loop

方法

描述

SetLoops(int loops,LoopType loopType)

设置循环

Loops 循环次数 设置为-1时为无线循环

LoopType

LoopType.Restart:当一次循环结束时,就会重新回到原点

LoopType.Yoyo:溜溜球来回效果

LoopType.Incremental:完成一次循环操作后,在当前状态基础上继续表现补间动画。

Ease

过渡效果预览:

Easing Functions Cheat Sheet

回调

方法

描述

OnComplete

动画完全结束后调用

OnStepComplete

完成单个循环后调用

例如一个动画使用SetLoops循环3次,那么该回调会调用3次

OnPlay

每次从暂停状态恢复播放时调用

OnPause

当状态从播放变为暂停时调用

OnUpdate

补间动画更新的每帧调用

OnStart

开始时调用,与OnPlay有所不同.不会因为暂停开始而调用,只会调用一次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值