DOTween 文档
1、命名法
Tweener: 一个控制值并为其设置动画的补间动画。 Sequence: 一个特殊的补间,它不是控制一个值,而是控制其他补间并将它们作为一个组动画。 Tween: 表示Tweener
和Sequence
的通用词。 Nested tween: 嵌套的补间;序列中包含的补间。
前缀
前缀对于最大限度地利用IntelliSense
非常重要,因此请尝试记住以下内容:
DO: 所有补间快捷方式的前缀(可以直接从已知对象(如变换或材质)启动的操作)。也是主DOTween
类的前缀。
transform.DOMoveX(100, 1);
transform.DORestart();
DOTween.Play();
Set: 可以链接到补间的所有设置的前缀(From除外,因为它作为设置应用但实际上不是设置)。
myTween.SetLoops(4, LoopType.Yoyo).SetSpeedBased();
On: 可以链接到补间的所有回调的前缀。
myTween.OnStart(myStartFunction).OnComplete(myCompleteFunction);
2、DOTween.Init
第一次创建补间时,DOTween
将使用默认值自动初始化自身。
如果您更喜欢自己初始化它(推荐),请在创建任何补间之前调用此方法一次(之后调用它将不起作用)。
考虑到您仍然可以使用DOTween
的全局设置随时更改所有初始设置。
(可选)您可以链接SetCapacity
到Init
方法,该方法允许设置最大Tweeners
/ Sequences
初始容量(它与稍后调用DOTween.SetTweensCapacity
相同)。
static DOTween.Init(bool recycleAllByDefault = false,bool useSafeMode = true,
LogBehaviour logBehaviour = LogBehaviour.ErrorsOnly)
DOTween.Init();
DOTween.Init(true, true, LogBehaviour.Verbose).SetCapacity(200, 10);
3、创建一个Tweener
Tweeners
是DOTween
的工作蚂蚁。他们获取属性/字段并将其设置为给定值。
截至目前,DOTween
可以补间这些类型的值:float
,double
,int
,uint
,long
,ulong
,Vector2 / 3/4
,Quaternion
,Rect
,RectOffset
,Color
,string
(其中一些值可以通过特殊方式进行补间) 此外,您可以创建自定义DOTween
插件以补间自定义值类型
有3种方法来创建一个Tweener
:在通用的方式,快捷方式和更多的通用方式。
A. 通用方式
这是最灵活的补间方式,允许你几乎任何值,公共或私有,静态或动态 (只是你知道,快捷方式实际上在后台使用通用方式)。
与快捷方式一样,通用方式具有FROM
备用版本。只需将From
链接到Tweener
,使补间表现为FROM
补间而不是TO
补间。
static DOTween.To(getter,setter,to,float duration)
B. 快捷方式
DOTween
包含一些已知Unity
对象的快捷方式,如Transform
,Rigidbody
和Material
。您可以直接从对这些对象的引用启动补间(这也将自动将对象本身设置为补间目标),如:
transform.DOMove(new Vector3(2,3,4), 1);
rigidbody.DOMove(new Vector3(2,3,4), 1);
material.DOColor(Color.green, 1);
除非另有说明,否则这些快捷方式中的每一个都具有FROM
备用版本。只需将From
链接到Tweener
,使补间表现为FROM
补间而不是TO
补间。
重要提示:当您将一个FROM
分配给补间时,目标将立即跳转到FROM
位置(就像“编写该行代码的那一刻”,而不是“补间开始的那一刻”)。
transform.DOMove(new Vector3(2,3,4), 1).From();
rigidbody.DOMove(new Vector3(2,3,4), 1).From();
material.DOColor(Color.green, 1).From();
基本元素快捷方式
AudioMixer(Unity 5)
DOSetFloat(string floatName, float to, float duration)
AudioSource
DOFade(float to, float duration)
DOPitch(float to, float duration)
Camera
DOAspect(float to, float duration)
DOColor(Color to, float duration)
DOFarClipPlane(float to, float duration)
DOFieldOfView(float to, float duration)
DONearClipPlane(float to, float duration)
DOOrthoSize(float to, float duration)
DOPixelRect(Rect to, float duration)
DORect(Rect to, float duration)
DOShakePosition(float duration, float/Vector3 strength, int vibrato, bool fadeOut)
DOShakeRotation(float duration, float/Vector3 strength, int vibrato, float randomness bool fadeOut)
Light
DOColor(Color to, float duration)
DOIntensity(float to, float duration)
DOShadowStrength(float to, float duration)
可混合的补间
DOBlendableColor(Color to, float duration)
LineRenderer
DOColor(Color2 startValue, Color2 endValue, float duration)
Material
DOColor(Color to, float duration)
DOColor(Color to, string property, float duration)
DOFade(float to, float duration)
DOFade(float to, string property, float duration)
DOFloat(float to, string property, float duration)
DOGradientColor(Gradient to, float duration)
DOGradientColor(Gradient to, string property, float duration)
DOOffset(Vector2 to, float duration)
DOOffset(Vector2 to, string property, float duration)
DOTiling(Vector2 to, float duration)
DOTiling(Vector2 to, string property, float duration)
DOVector(Vector4 to, string property, float duration)
可混合的补间
DOBlendableColor(Color to, float duration)
DOBlendableColor(Color to, string property, float duration)
Rigidbody这些快捷方式在后台使用刚体的MovePosition
/MoveRotation
方法,以正确设置与物理对象相关的内容。Move
DOMove(Vector3 to,float duration,bool snapping)
DOMoveX / DOMoveY / DOMoveZ(float to,float duration,bool snapping)
DOJump(Vector3 endValue,float jumpPower,int numJumps,float duration,bool snapping)
Rotate
DORotate(Vector3 to, float duration, RotateMode mode)
DOLookAt(Vector3 towards, float duration, AxisConstraint axisConstraint = AxisConstraint.None, Vector3 up = Vector3.up)
PRO ONLY ➨ Spiral – no FROM
DOSpiral(float duration, Vector3 axis = null, SpiralMode mode = SpiralMode.Expand, float speed = 1, float frequency = 10, float depth = 0, bool snapping = false)
Rigidbody2D这些快捷方式在后台使用rigidbody2D
的MovePosition
/MoveRotation
方法,以正确设置与物理对象相关的内容。Move
DOMove(Vector2 to,float duration,bool snapping)
DOMoveX / DOMoveY(float to,float duration,bool snapping)
DOJump(Vector2 endValue,float jumpPower,int numJumps,float duration,bool snapping)
Rotate
DORotate(float toAngle, float duration)
SpriteRenderer
DOColor(Color to, float duration)
DOFade(float to, float duration)
DOGradientColor(Gradient to, float duration)
可混合的补间
DOBlendableColor(Color to, float duration)
TrailRenderer
DOResize(float toStartWidth, float toEndWidth, float duration)
DOTime(float to, float duration)
TransformMove
DOMove(Vector3 to,float duration,bool snapping)
DOMoveX / DOMoveY / DOMoveZ(float to,float duration,bool snapping)
DOLocalMove(Vector3 to,float duration,bool snapping)
DOLocalMoveX / DOLocalMoveY / DOLocalMoveZ(float to,float duration,bool snapping)
DOJump(Vector3 endValue,float jumpPower,int numJumps,float duration,bool snapping)
DOLocalJump(Vector3 endValue,float jumpPower,int numJumps,float duration,bool snapping)
Rotate
DORotate(Vector3 to, float duration, RotateMode mode)
DORotateQuaternion(Quaternion to, float duration)
DOLocalRotate(Vector3 to, float duration, RotateMode mode)
DOLocalRotateQuaternion(Quaternion to, float duration)
DOLookAt(Vector3 towards, float duration, AxisConstraint axisConstraint = AxisConstraint.None, Vector3 up = Vector3.up)
Scale
DOScale(float/Vector3 to, float duration)
DOScaleX/DOScaleY/DOScaleZ(float to, float duration)
Punch – no FROM
DOPunchPosition(Vector3 punch, float duration, int vibrato, float elasticity, bool snapping)
DOPunchRotation(Vector3 punch, float duration, int vibrato, float elasticity)
DOPunchScale(Vector3 punch, float duration, int vibrato, float elasticity)
Shake – no FROM
DOShakePosition(float duration, float/Vector3 strength, int vibrato, float randomness, bool snapping, bool fadeOut)
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 – no FROM
DOPath(Vector3[] waypoints, float duration, PathType pathType = Linear, PathMode pathMode = Full3D, int resolution = 10, Color gizmoColor = null)
DOLocalPath(Vector3[] waypoints, float duration, PathType pathType = Linear, PathMode pathMode = Full3D, int resolution = 10, Color gizmoColor = null)
可混合的补间
DOBlendableMoveBy(Vector3 by,float duration,bool snapping)
DOBlendableLocalMoveBy(Vector3 by,float duration,bool snapping)
DOBlendableRotateBy(Vector3 by,float duration,RotateMode mode)
DOBlendableLocalRotateBy(Vector3 by,float duration,RotateMode mode)
DOBlendableScaleBy(Vector3 by,float duration)
PRO ONLY ➨ Spiral – no FROM
DOSpiral(float duration, Vector3 axis = null, SpiralMode mode = SpiralMode.Expand, float speed = 1, float frequency = 10, float depth = 0, bool snapping = false)
Tween这些是实际补间其他补间属性的快捷方式。我打赌你不认为你能做到这一点:P
DOTimeScale(float toTimeScale, float duration)
Unity UI 4.6快捷方式
CanvasGroup(Unity UI 4.6)
DOFade(float to, float duration)
Graphic (Unity UI 4.6)
DOColor(Color to, float duration)
DOFade(float to, float duration)
可混合的补间
DOBlendableColor(Color to, float duration)
Image (Unity UI 4.6)
DOColor(Color to, float duration)
DOFade(float to, float duration)
DOFillAmount(float to, float duration)
DOGradientColor(Gradient to, float duration)
可混合的补间
DOBlendableColor(Color to, float duration)
LayoutElement(Unity UI 4.6)
DOFlexibleSize(Vector2 to,float duration,bool snapping)
DOMinSize(Vector2 to,float duration,bool snapping)
DOPreferredSize(Vector2 to,float duration,bool snapping)
Outline (Unity UI 4.6)
DOColor(Color to, float duration)
DOFade(float to, float duration)
RectTransform (Unity UI 4.6)
DOAnchorMax(Vector2 to, float duration, bool snapping)
DOAnchorMin(Vector2 to, float duration, bool snapping)
DOAnchorPos(Vector2 to, float duration, bool snapping)
DOAnchorPosX/DOAnchorPosY(float to, float duration, bool snapping)
DOAnchorPos3D(Vector3 to, float duration, bool snapping)
DOAnchorPos3DX/DOAnchorPos3DY/DOAnchorPos3DZ(float to, float duration, bool snapping)
DOJumpAnchorPos(Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping)
DOPivot(Vector2 to, float duration)
DOPivotX/DOPivotY(float to, float duration)
DOPunchAnchorPos(Vector2 punch, float duration, int vibrato, float elasticity, bool snapping)
DOShakeAnchorPos(float duration, float/Vector3 strength, int vibrato, float randomness, bool snapping, bool fadeOut)
DOSizeDelta(Vector2 to, float duration, bool snapping)
ScrollRect (Unity UI 4.6)
DONormalizedPos(Vector2 to, float duration, bool snapping)
DOHorizontalNormalizedPos(float to, float duration, bool snapping)
DOVerticalPos(float to, float duration, bool snapping)
Slider (Unity UI 4.6)
DOValue(float to, float duration, bool snapping = false)
Text (Unity UI 4.6)
DOColor(Color to, float duration)
DOFade(float to, float duration)
DOText(string to, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null)
可混合的补间
DOBlendableColor(Color to, float duration)
PRO ONLY ➨ 2D Toolkit的快捷键
tk2dBaseSprite
DOScale(Vector3 to, float duration)
DOScaleX/Y/Z(float to, float duration)
DOColor(Color to, float duration)
DOFade(float to, float duration)
tk2dSlicedSprite
DOScale(Vector2 to, float duration)
DOScaleX/Y(float to, float duration)
tk2dTextMesh
DOColor(Color to, float duration)
DOFade(float to, float duration)
DOText(string to, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null)
PRO ONLY➨ TextMesh Pro的快捷键
TextMeshPro + TextMeshProUGUI
DOScale(float to, float duration)
DOColor(Color to, float duration)
DOFaceColor(Color to, float duration)
DOFaceFade(float to, float duration)
DOFade(float to, float duration)
DOFontSize(float to, float duration)
DOGlowColor(Color to, float duration)
DOMaxVisibleCharacters(int to, float duration)
DOOutlineColor(Color to, float duration)
DOText(string to, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null)
C. 其他通用方法
这些是允许以特定方式补间值的其他通用方法。
这些也有FROM
备用版本,除非另有说明。只需将From
链接到Tweener
,使补间表现为FROM
补间而不是TO
补间。
static DOTween.Punch(getter, setter, Vector3 direction, float duration, int vibrato, float elasticity)
static DOTween.Shake(getter, setter, float duration, float/Vector3 strength, int vibrato, float randomness, bool ignoreZAxis)
static DOTween.ToAlpha(getter, setter, float to, float duration)
static DOTween.ToArray(getter, setter, float to, float duration)
static DOTween.ToAxis(getter, setter, float to, float duration, AxisConstraint axis)
虚拟补间
static DOTween.To(setter,float startValue,float endValue,float duration)
4、创建序列
序列类似于Tweeners
,但它们不是动画属性或值,而是将其他Tweeners
或Sequences
作为一组动画。
序列可以包含在其他序列中,而不限制层次结构的深度。
排序的补间不必一个接一个。您可以使用Insert
方法重叠补间。
补间(序列或Tweener
)只能嵌套在单个其他序列中,这意味着您不能在多个序列中重用相同的补间。此外,主序列将控制其所有嵌套元素,并且您将无法单独控制嵌套补间(将序列视为电影时间轴,一旦它第一次启动就会变为固定)。
重要提示:不要使用空序列。
要创建序列,请执行以下两个步骤:
1.获取要使用的新序列并将其存储为引用
static DOTween.Sequence()
2.将补间,间隔和回调添加到序列
请注意,所有这些方法都需要在序列开始之前应用(通常是在创建它之后的下一帧,除非它已暂停),否则它们将没有任何效果。另请注意,任何嵌套的Tweener
/Sequence
都需要在将其添加到Sequence
之前完全创建,因为之后它将被锁定。
延迟和循环(当不是无限时)甚至可以在嵌套的补间内工作。
Append(Tween tween)
AppendCallback(TweenCallback callback)
AppendInterval(float interval)
Insert(float atPosition, Tween tween)
InsertCallback(float atPosition, TweenCallback callback)
Join(Tween tween)
Prepend(Tween tween)
PrependCallback(TweenCallback callback)
PrependInterval(float interval)
提示:您可以创建仅由回调构成的序列,并将它们用作计时器或类似的东西。
例子创建序列
// Grab a free Sequence to use
Sequence mySequence = DOTween.Sequence();
// Add a movement tween at the beginning
mySequence.Append(transform.DOMoveX(45, 1));
// Add a rotation tween as soon as the previous one is finished
mySequence.Append(transform.DORotate(new Vector3(0,180,0), 1));
// Delay the whole Sequence by 1 second
mySequence.PrependInterval(1);
// Insert a scale tween for the whole duration of the Sequence
mySequence.Insert(0, transform.DOScale(new Vector3(3,3,3), mySequence.Duration()));
与前面的示例相同,但使用链接(加上换行符以使事情更清晰):
Sequence mySequence = DOTween.Sequence();
mySequence.Append(transform.DOMoveX(45, 1))
.Append(transform.DORotate(new Vector3(0,180,0), 1))
.PrependInterval(1)
.Insert(0, transform.DOScale(new Vector3(3,3,3), mySequence.Duration()));
5、设置,选项和回调
在将设置应用于补间时,DOTween
使用链接方法。或者,您可以更改将应用于所有新创建的补间的全局默认选项。
● 全局设置
常规设置
static LogBehaviour DOTween.logBehaviour
static bool DOTween.maxSmoothUnscaledTime
static bool DOTween.showUnityEditorReport
static float DOTween.timeScale
static bool DOTween.useSafeMode
static bool DOTween.useSmoothDeltaTime
static DOTween.SetTweensCapacity(int maxTweeners, int maxSequences)
应用于所有新创建的补间的设置
static bool DOTween.defaultAutoKill
static AutoPlay DOTween.defaultAutoPlay
static float DOTween.defaultEaseOvershootOrAmplitude
static float DOTween.defaultEasePeriod
static Ease DOTween.defaultEaseType
static LoopType DOTween.defaultLoopType
static bool DOTween.defaultRecyclable
static bool DOTween.defaultTimeScaleIndependent
static UpdateType DOTween.defaultUpdateType
● Tweener 和 Sequence 设置
实例属性
float timeScale
链式设置
这些设置可以链接到所有类型的补间。 您还可以在补间运行时链接它们(除了SetLoops
和SetAs
)
SetAs(Tween tween \ TweenParams tweenParams)
SetAutoKill(bool autoKillOnCompletion = true)
SetEase(Ease easeType \ AnimationCurve animCurve \ EaseFunction customEase)
SetId(object id)
SetLoops(int loops, LoopType loopType = LoopType.Restart)
SetRecyclable(bool recyclable)
SetRelative(bool isRelative = true)
SetUpdate(UpdateType updateType, bool isIndependentUpdate = false)
链式回调
OnComplete(TweenCallback callback)
OnKill(TweenCallback callback)
OnPlay(TweenCallback callback)
OnPause(TweenCallback callback)
OnRewind(TweenCallback callback)
OnStart(TweenCallback callback)
OnStepComplete(TweenCallback callback)
OnUpdate(TweenCallback callback)
OnWaypointChange(TweenCallback<int> callback)
顺便说一句,附加到嵌套补间的回调仍将以正确的顺序工作。
如果你想使用带参数的回调,lambdas
来救援:
// Callback without parameters
transform.DOMoveX(4, 1).OnComplete(MyCallback);
// Callback with parameters
transform.DOMoveX(4, 1).OnComplete(()=>MyCallback(someParam, someOtherParam));
● 特定于Tweener的设置和选项
这些设置特定于Tweeners
,对序列没有影响。 除了SetEase
在补间运行时链接这些设置将不起作用。
From(bool isRelative = false)
SetDelay(float delay)
SetSpeedBased(bool isSpeedBased = true)
SetOptions
一些Tweeners
具有特定的特殊选项,可供您使用,具体取决于您补间的内容类型。这都是自动的:如果Tweener
有特定选项,你会看到特定SetOptions
方法存在给Tweener
,否则你不会。这是魔法!
请注意,这些选项通常仅在通过通用方式创建补间时可用,而快捷方式的主要创建方法中已包含相同的选项。
需要记住的重要一点是,虽然所有其他设置可以按任何顺序链接在一起,但SetOptions
必须在补间创建功能之后立即链接,否则它将不再可用。
通用补间特定选项(已包含在相应的补间快捷方式中)
Color tween ➨ SetOptions(bool alphaOnly)
float tween ➨ SetOptions(bool snapping)
Quaternion tween ➨ SetOptions(bool useShortest360Route)
Rect tween ➨ SetOptions(bool snapping)
String tween ➨ SetOptions(bool richTextEnabled, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null)
Vector2/3/4 tween ➨ SetOptions(AxisConstraint constraint, bool snapping)
Vector3Array tween ➨ SetOptions(bool snapping)
DOPath特定选项
Path tween ➨ SetOptions(bool closePath, AxisConstraint lockPosition = AxisConstraint.None, AxisConstraint lockRotation = AxisConstraint.None)
Path tween ➨ SetLookAt(Vector3 lookAtPosition/lookAtTarget/lookAhead, Vector3 forwardDirection, Vector3 up = Vector3.up)
● TweenParams
如果您之前使用过HOTween
,则会知道TweenParms
(现在称为TweenParams
):它们用于存储您可以应用于多个补间的设置。与HOTween
的区别在于它们根本不是必需的,因为现在设置链接直接在补间上完成。相反,它们只是作为额外的实用程序类。
要使用它,请创建一个新的TweenParams
实例或Clear()
现有实例,然后像使用常规补间链一样添加设置。要将它们应用于补间,请使用SetAs
。
// Store settings for an infinite looping tween with elastic ease
TweenParams tParms = new TweenParams().SetLoops(-1).SetEase(Ease.OutElastic);
// Apply them to a couple of tweens
transformA.DOMoveX(15, 1).SetAs(tParms);
transformB.DOMoveY(10, 1).SetAs(tParms);
● 更多关于链接
需要明确的是,您不需要一次链接一件事,而是可以这样做:
transform.DOMoveX(45, 1).SetDelay(2).SetEase(Ease.OutQuad).OnComplete(MyCallback);
6、控制补间
您有3种方法来操纵补间。它们共享相同的方法名称,除了具有附加DO
前缀的快捷方式增强的方法名称。
A. 通过静态方法和过滤器
DOTween
类包含许多允许您控制补间的静态方法。 它们都是“All
”版本(如DOTween.KillAll
),适用于所有现有补间,还有一个简单版本(DOTween.Kill(myTargetOrId)
),带有一个参数,允许您通过补间的id
或目标过滤操作(id
通过SetId
手动设置),当通过快捷方式创建补间时自动设置目标)。
静态方法还返回一个int
,它表示实际上能够执行所请求操作的所有补间。
// Pauses all tweens
DOTween.PauseAll();
// Pauses all tweens that have "badoom" as an id
DOTween.Pause("badoom");
// Pauses all tweens that have someTransform as a target
DOTween.Pause(someTransform);
B. 直接来自补间您可以从补间的引用中调用相同的方法,而不是使用静态方法。
myTween.Pause();
C. 从快捷方式增强的参考与上面相同,但您可以从快捷方式增强的对象中调用相同的方法。请记住,在这种情况下,方法名称有一个额外的DO前缀,以区别于常规对象方法。
transform.DOPause();
● 控制方法
同样,请记住所有这些方法名称都由所有操作方式共享,但是在对象快捷方式的情况下,还有一个额外的DO
前缀。
重要说明:请记住,要在补间结束后在补间上使用这些方法,必须禁用其autoKill
行为,否则补间会在完成时自动终止。
CompleteAll/Complete(bool withCallbacks = false)
FlipAll/Flip()
GotoAll/Goto(float to, bool andPlay = false)
KillAll/Kill(bool complete = true, params object[] idsOrTargetsToExclude)
PauseAll/Pause()
PlayAll/Play()
PlayBackwardsAll/PlayBackwards()
PlayForwardAll/PlayForward()
RestartAll/Restart(bool includeDelay = true, float changeDelayTo = -1)
RewindAll/Rewind(bool includeDelay = true)
SmoothRewindAll/SmoothRewind()
TogglePauseAll/TogglePause()
● 特殊控制方法
所有补间都很常见
ForceInit()
型特异性这些是特殊的控制方法,仅适用于某些特定类型的补间
GotoWaypoint(int waypointIndex, bool andPlay = false)
7、从补间获取数据
静态方法(DOTween)
static List<Tween> PausedTweens()
static List<Tween> PlayingTweens()
static List<Tween> TweensById(object id, bool playingOnly = false)
static List<Tween> TweensByTarget(object target, bool playingOnly = false)
static bool IsTweening(object idOrTarget, bool alsoCheckIfPlaying = false)
static int TotalPlayingTweens()
实例方法(Tween / Tweener / Sequence)
float fullPosition
int CompletedLoops()
float Delay()
float Duration(bool includeLoops = true)
float Elapsed(bool includeLoops = true)
float ElapsedDirectionalPercentage()
float ElapsedPercentage(bool includeLoops = true)
bool IsActive()
bool IsBackwards()
bool IsComplete()
bool IsInitialized()
bool IsPlaying()
int Loops()
实例方法➨路径补间
Vector3 PathGetPoint(float pathPercentage)
Vector3 [] PathGetDrawPoints(int subdivisionsXSegment = 10)
float PathLength()
8、等待协同程序
Tweens
附带了一组有用的YieldInstructions
,你可以放在你的Coroutines
中,这样你就可以等待一些事情发生。
如果您使用的是Unity 5.3或更高版本,则所有这些方法都将具有可选的bool
参数,该参数允许返回a CustomYieldInstruction
。
WaitForCompletion()
WaitForElapsedLoops(int elapsedLoops)
WaitForKill()
WaitForPosition(float position)
WaitForRewind()
WaitForStart()
9、其他方法
静态方法(DOTween)
static DOTween.Clear(bool destroy = false)
static DOTween.ClearCachedTweens()
static DOTween.Validate()
static DOTween.ManualUpdate(float deltaTime,float unscaledDeltaTime)
实例方法(Tween / Tweener / Sequence)Tweener
ChangeEndValue(newEndValue,float duration = -1,bool snapStartValue = false)
ChangeStartValue(newStartValue,float duration = -1)
ChangeValues(newStartValue,newEndValue,float duration = -1)
10、虚方法
注意:虚拟方法不能放在Sequences
中。
static Tweener DOVirtual.Float(float from,float to,float duration,TweenCallback <float> onVirtualUpdate)
static float DOVirtual.EasedValue(float from,float to,float lifetimePercentage,Ease easeType \ AnimationCurve animCurve)
static Tween DOVirtual.DelayedCall(float delay,TweenCallback callback,bool ignoreTimeScale = true)
11、创建自定义插件
示例页面中的示例UnityPackage
显示了如何创建自定义插件等。
?