-
To() 补间:
.To()
用于从当前属性值到指定的目标属性值创建补间动画。- 你提供目标属性值,DOTween会根据当前属性值和目标值之间的差异来创建动画。
- 例如,
transform.DOMove(new Vector3(100, 100, 100), 1)
将会从物体当前的位置移动到(100, 100, 100)
,并在1秒内完成。
-
.From() 补间:
.From()
用于从指定的初始属性值开始创建补间动画。- 你提供初始属性值,DOTween会从这个初始值开始,然后在指定的时间内逐渐将属性值过渡到当前属性值。
- 例如,
transform.DOMove(new Vector3(100, 100, 100), 1).From(new Vector3(50, 50, 50))
将从(50, 50, 50)
开始,然后将物体移动到(100, 100, 100)
,并在1秒内完成。
总之,.To()
是从当前属性值到目标属性值的过渡,而 .From()
是从指定的初始属性值开始的过渡。这两种方法可以用于创建不同的动画效果,具体取决于你的需求。
DOMove,Doscale都已经封装好了to()补间方法,除非另有说明,否则这些快捷方式中的每一个都具有 FROM 备用版本。只需将 在to()补间后. From ()链接到 Tweener,即可使 Tween 的行为为 FROM 补间而不是 TO 补间。
3.Append补间,sequence序列中元素是按顺序播放,一个不播放完成,后续不会继续播放,
mySequence.Append(transform.DOMoveX(100, 10)); mySequence.Append(transform.DOMoveX(-100, 10));
4.Insert插入,与Append无关,只要序列开始播放,延迟时间到了就可以立即播放,不管Append的动画是否正在播放,也就是一个序列可以同时播放多个动画,当前一个Append播放完成,Insert未播放完成,下一个Append会等待Insert播放完成在进行播放。insert的插入会影响原有的序列进行改变。
mySequence.Insert(1, transform.DOMoveX(45, 1));
5.Join加入,与序列无关,不会影响序列的播放顺序,可以与序列中的动画同时进行播放,
6.Join加入和
Insert插入的不同在于,Insert的插入会影响原来序列的播放顺序,而join不会。二者都可以与appen进行同时的播放。与join同时播放的appen播放完成后,后续的appen可以直接播放。与insert同时播放的appen播放完成后,后续的appen不可以直接播放,需要等待insert的动画播放完毕
7.Prepend
方法, 将动画添加到 Sequence 中时,这个 动画 将成为 Sequence 的第一个动画,即它会在 Sequence 中的其他动画之前执行。
8.序列,一个序列中有多个Append动画,也可以套序列,序列的初始化一定要在方法体里面,不能够直接声明和初始化在外部,会报错。具体原因了解了在分析
9.setAs(个人理解),设置我动画的相对关系,可以使一个序列中两个动画全部播放
mySequence.Append(transform.DOMoveX(-1000, 5).SetAs(transform.DOMoveY(0100, 3)));
10.SetAutoKill(false)
方法用于设置 Tween 的自动销毁行为。当你将 Tween 的自动销毁设置为 false
时,Tween 不会在完成后自动销毁,而会保持在内存中。这可以用于在稍后重复使用 Tween,或者在需要的时候手动销毁 Twee
11.SetEase
是 DOTween 中用于设置缓动函数(Easing Function)的方法。缓动函数用于控制动画中值的插值,以实现不同的动画效果,如平滑开始、结束、加速、减速等。DOTween提供了多种内置的缓动函数
Ease类型(Built-in Easing Functions): DOTween提供了多种内置的缓动函数,你可以从这些函数中选择一个适合你的动画效果。一些常见的内置缓动函数包括:
Ease.Linear
:线性缓动,动画以恒定速度执行。Ease.InQuad
:二次缓动,动画开始时加速。Ease.OutQuad
:二次缓动,动画结束时减速。Ease.InOutQuint
:五次缓动,动画平滑地开始和结束,中间有加速和减速。
mySequence.Append(transform.DOMoveX(-1000, 10).SetEase(Ease.InOutQuint));
12.SetInverted()用来倒放动画或者序列
mySequence.Append(transform.DOMoveX(-1000, 10).SetEase(Ease.InOutQuint)); mySequence.Append(transform.DOMoveX(-100, 10)); mySequence.SetInverted();
13.SetLink与物体只有被关联的Tween会受到目标GameObject的启用和禁用的影响。
transform.DOMoveX(4,1).SetLink(aGameObject,LinkBehaviour.PauseOnDisableRestartOnEnable)
14.transform.DOMoveX(4, 1).SetLoops(3, LoopType.Yoyo); 循环播放
15.SetRelative();方法是用于将Tween的目标值解释为相对值的方法。当你调用这个方法时,Tween将不再以绝对目标值为目标,而是以相对于当前值的增量作为目标值
transform.DOMoveX(4, 1).SetRelative();
这将创建一个Tween,它的目标是将物体在X轴上移动4个单位,但这个移动是相对于物体当前的X轴位置的。如果物体当前的X轴位置是2,那么Tween将使物体移动到6。
16.transform.DOMoveX(4, 1).SetUpdate(UpdateType.Late, true);
SetUpdate
是 DOTween 中用于设置 Tween 更新方式的方法。Tween更新方式定义了Tween的更新时机和频率,对于不同的需求可以选择不同的更新方式。
SetUpdate
方法接受一个枚举类型的参数,该参数可以是以下之一:
-
UpdateType.Normal
:这是默认的更新方式,Tween在每一帧更新。这通常用于创建与游戏帧同步的动画。 -
UpdateType.Fixed
:Tween在每一帧更新,但是使用固定时间间隔。这通常用于创建与FixedUpdate方法同步的动画。 -
UpdateType.Late
:Tween在每一帧的最后更新。这通常用于处理需要在所有其他脚本更新之后执行的Tween。 -
UpdateType.Manual
:手动更新方式,Tween不会自动更新,需要通过调用DOTween.ManualUpdate
手动更新。这通常用于特殊需求,如在自定义的更新循环中处理Tween。
通过选择不同的更新方式,你可以根据需要将Tween与不同的更新时机进行同步,以满足不同的动画需求。例如,如果你需要在每一帧更新Tween,你可以使用默认的 UpdateType.Normal
。如果你需要与 FixedUpdate
同步,你可以使用 UpdateType.Fixed
。如果你需要在其他脚本更新之后执行Tween,你可以使用 UpdateType.Late
。