序列与 Tweener 类似,但它们不是为属性或值设置动画,而是将其他 Tweener 或序列作为一个组进行动画处理。
序列可以包含在其他序列中,而对层次结构的深度没有任何限制。
已排序的补间不必一个接一个。您可以使用Insert方法重叠补间。
补间(Sequence 或 Tweener)只能嵌套在单个其他 Sequence中,这意味着您不能在多个 Sequence 中重复使用相同的补间。此外,主序列将控制其所有嵌套元素,您将无法单独控制嵌套补间(将序列视为电影时间线,一旦第一次启动就会固定)。
最后,请注意添加到序列的补间不能有无限循环(但根序列可以)。
重要提示:不要使用空序列。
要创建序列,请执行以下两个步骤:
1. 获取一个新的序列来使用并将其存储为参考
static DOTween.Sequence()
返回可以存储和添加补间的可用序列。
Sequence mySequence = DOTween.Sequence();
2. 将补间、间隔和回调添加到您的序列
请注意,所有这些方法都需要在序列开始之前应用(通常是在您创建它之后的下一帧,除非它被暂停),否则它们不会有任何效果。
另请注意,任何嵌套的 Tweener/Sequence 都需要在将其添加到 Sequence 之前完全创建,因为之后它将被锁定。
延迟和循环(当不是无限时)甚至在嵌套的补间中也可以工作。
Append(Tween tween)
将给定的补间添加到序列的末尾(表示序列的当前总持续时间)。
mySequence.Append(transform.DOMoveX(45, 1));
AppendCallback( TweenCallback callback)
将给定的回调添加到序列的末尾(表示序列的当前总持续时间)。
mySequence.AppendCallback(MyCallback);
AppendInterval(float interval)
将给定的间隔添加到序列的末尾(表示序列的当前总持续时间)。
mySequence.AppendInterval(interval);
insert(float atPosition,Tween tween)
在给定的时间位置插入给定的补间,从而允许您重叠补间,而不是仅仅将它们一个接一个地放置。
mySequence.Insert(1, transform.DOMoveX(45, 1));
InsertCallback( float atPosition, TweenCallback callback)
在给定的时间位置插入给定的回调。
mySequence.InsertCallback(1, MyCallback);
Join(Tween tween)
在添加到序列的最后一个补间或回调的同一时间位置插入给定的补间。
// The rotation tween will be played together with the movement tween mySequence.Append(transform.DOMoveX(45, 1)); mySequence.Join(transform.DORotate(new Vector3(0,180,0), 1));
Prepend(Tween tween)
将给定的补间添加到序列的开头,及时推进其余内容。
mySequence.Prepend(transform.DOMoveX(45, 1));
PrependCallback( TweenCallback callback)
将给定的回调添加到序列的开头。
mySequence.PrependCallback(MyCallback);
PrependInterval(float interval)
将给定的间隔添加到序列的开头,及时推进其余内容。
mySequence.PrependInterval(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()));
在将设置应用于补间时,DOTween 使用链接方法。或者您可以更改将应用于所有新创建的补间的全局默认选项。
static LogBehaviour DOTween.logBehaviour
默认值: LogBehaviour.ErrorsOnly
根据选择的模式,DOTween 将仅记录错误、错误和警告,或所有内容以及其他信息。LogBehaviour.ErrorsOnly:
记录错误,仅此而已。LogBehaviour.Default:
记录错误和警告。LogBehaviour.Verbose:
记录错误、警告和其他信息。static bool DOTween.maxSmoothUnscaledTime
默认值: 0.15f
如果useSmoothDeltaTime
为 TRUE,则表示在 timeIndependent 补间的情况下将被视为经过的最长时间。static bool DOTween.nestedTweenFailureBehaviour
默认值: NestedTweenFailureBehaviour.TryToPreserveSequence
在安全模式处于活动状态且嵌套在序列中的补间失败时的行为。static bool DOTween.onWillLog
用于拦截 DOTween 的日志。如果此方法不为 NULL,DOTween 将在通过 Unity 自己的 Debug 日志方法写入日志之前调用它。 如果您希望 DOTween 继续处理日志, 则
返回 ,否则。 这个方法必须返回一个 并接受两个参数: (DOTween 试图记录的 Unity 日志的类型), (DOTween 想要记录的消息)。TRUE
FALSE
bool
LogType
object
static bool DOTween.showUnityEditorReport
默认值: FALSE
如果设置为 TRUE,您将在退出播放模式时收到 DOTween 报告(仅在编辑器中)。有助于了解您达到了多少最大 Tweeners 和 Sequences 并相应地优化您的最终项目。
请注意,这会稍微降低您在 Unity Editor 中的性能。static float DOTween\.useSafeMode
默认值: 1
全局 timeScale 应用于所有补间,包括常规和独立。static bool DOTween.useSafeMode
默认值: TRUE
如果设置为 TRUE,补间会稍微慢一些但更安全,允许 DOTween 自动处理诸如在补间运行时破坏目标之类的事情。
将其设置为 FALSE 意味着您必须亲自处理在其目标被摧毁或以某种方式使其无效之前杀死一个补间。
警告:在 iOS 上,safeMode 仅在剥离级别设置为“Strip Assemblies”或脚本调用优化设置为“Slow and Safe”时才有效,而在 Windows 10 WSA 上,如果选择了 Master Configuration 和 .NET,它将不起作用。static bool DOTween.useSmoothDeltaTime
默认值: FALSE
如果为 TRUE,DOTween 将使用Time.smoothDeltaTime
代替Time.deltaTime
forUpdateType.Normal
和UpdateType.Late
tweens(除非它们设置为 timeScaleIndependent,在这种情况下,将使用最后一个时间步之间的值maxSmoothUnscaledTime
)。将此设置为 TRUE 将导致更流畅的动画。static DOTween.SetTweensCapacity( int maxTweeners, int maxSequences )
为了更快,DOTween 限制了您可以拥有的活动补间的最大数量。如果您超出该限制,请不要担心:它会自动增加。尽管如此,如果您已经知道您需要比默认的最大 Tweeners/Sequences(即 200 个 Tweeners 和 50 个序列)更多(或更少),您可以在启动时设置 DOTween 的容量,并避免在自动提升时出现打嗝。
// Set max Tweeners to 2000 and max Sequences to 100 DOTween.SetTweensCapacity(2000, 100);
应用于所有新创建的补间的设置
static bool DOTween.defaultAutoKill
默认值: TRUE
默认 autoKill 行为应用于所有新创建的补间。static AutoPlay DOTween.defaultAutoPlay
默认值: AutoPlay.All
默认自动播放行为应用于所有新创建的补间。static float DOTween.defaultEaseOvershoot或Amplitude
默认值: 1.70158f
用于缓动的默认过冲/幅度。static float DOTween.defaultEasePeriod
默认值: 0
用于缓动的默认时间段。static Ease DOTween.defaultEaseType
默认值: Ease.OutQuad
默认缓动应用于所有新创建的 Tweeners。static LoopType DOTween.defaultLoopType
默认值: LoopType.Restart
默认循环类型应用于所有新创建的涉及循环的补间。static bool DOTween.deaultRecycleable
默认值: false
默认回收行为应用于所有新创建的补间。static bool DOTween.defaultTimeScaleIndependent
默认值: false
设置是否默认考虑 Unity 的 timeScale。static UpdateType DOTween.defaultUpdateType
默认值: UpdateType.Normal
默认值UpdateType
应用于所有新创建的补间。
实例属性
float timeScale
默认值: 1
设置补间的内部 timeScale。// Sets the tween so that it plays at half the speed myTween.timeScale = 0.5f;
提示:这个值可以通过另一个补间来实现平滑的慢动作效果。链式设置
Chained settings
这些设置可以链接到所有类型的补间。
您还可以在补间运行时链接它们(除了SetAs
、SetInverted
和)SetLoops
SetRelative
SetAs( Tween tween \ TweenParams tweenParams )
将补间的参数(id、ease、loops、delay、timeScale、callbacks 等)设置为给定参数(不复制特定的 SetOptions设置:每次都需要手动应用)或给定 TweenParams对象。
如果补间已经开始,则无效。transform.DOMoveX(4, 1).SetAs(myOtherTween);
SetAutoKill( bool autoKillOnCompletion = true )
如果
autoKillOnCompletion
设置为 TRUE,补间将在完成后立即被终止,否则它将保留在内存中,您将能够重用它。
注意:默认情况下补间在完成时会自动终止(因此仅当您计划FALSE
用作参数时才需要使用此方法),但您可以在 DOTween 的实用程序面板中更改默认行为。transform.DOMoveX(4, 1).SetAutoKill(false);
SetEase( Ease easeType \ AnimationCurve animCurve \ EaseFunction customEase )
设置补间的缓和度。
如果应用于 Sequence 而不是 Tweener,则缓动将应用于整个 Sequence ,就好像它是单个动画时间线一样。默认情况下,序列始终具有Ease.Linear
,独立于全局默认缓动设置。
你可以给它传递一个默认的缓动(Ease
- 查看默认缓动曲线的外观,查看 easings.net)、一个AnimationCurve
或自定义缓动函数( 参见示例)。
此外,可以设置以下可选参数:它们仅适用于 Back 和 Elastic 缓动。
注意:Back
和Elastic
缓动(意味着任何低于或超出开始和结束值的缓动)不适用于路径。
过冲与 Back ease 一起使用的最终过冲(默认值为 1.70158),或与 Flash ease 一起使用的闪光次数。
振幅与 Elastic ease 一起使用的最终幅度(默认值为 1.70158)。
时期与 Elastic 轻松一起使用的最终期限(默认为 0),或与 Flash 轻松一起使用的权力。transform.DOMoveX(4, 1).SetEase(Ease.InOutQuint); transform.DOMoveX(4, 1).SetEase(myAnimationCurve); transform.DOMoveX(4, 1).SetEase(MyEaseFunction);
特殊缓动
Flash, InFlash, OutFlash, InOutFlash:
这些缓动将对您补间的属性应用闪烁效果。下图应该很清楚这一点。
过冲指示要应用的闪烁总数。偶数将在起始值结束补间,而奇数将在结束值结束补间。
时期表示缓和时间的力量,必须在-1和1之间。0
平衡,1
充分削弱时间缓和,-1
开始完全削弱缓和并在结束时赋予它权力。
额外:EaseFactoryEaseFactory.StopMotion
是一个额外的层,您可以添加到您的缓动中,使它们表现得好像在以定格动画播放(实际上,它们将在补间时模拟给定的 FPS)。它可以作为包装器轻松应用。EaseFactory.StopMotion(int fps, Ease\AnimationCurve\EaseFunction ease)
transform.DOMoveX(4, 1).SetEase(EaseFactory.StopMotion(5, Ease.InOutQuint));
SetId(object id )
为补间设置一个 ID(然后可以将其用作 DOTween 的静态方法的过滤器)。它可以是一个 int、一个字符串、一个对象或其他任何东西。
注意:使用int
orstring
ID 使过滤操作更快(其中int
也比 更快string
)。transform.DOMoveX(4, 1).SetId("supertween");
SetInverted()
实验:反转此补间,使其从结尾播放到开头(向后播放实际上会从开头播放到结尾)。
注意:如果您只想向后播放补间,您可以简单地使用 tween.PlayBackwards。
如果补间已经开始或嵌套在序列中,则无效。tween.SetInverted();
SetLink( GameObject target,LinkBehaviour linkBehaviour = LinkBehaviour.KillOnDestroy )
将此补间链接到 GameObject 并根据其活动状态分配行为。这也将导致在 GameObject 被销毁时自动终止补间。
注意:如果将补间添加到序列中,则无效。
target 链接目标(与通过 设置的目标无关SetTarget
)。
linkBehaviour 使用的行为 (LinkBehaviour.KillOnDestroy
总是被评估——并默认设置——即使你选择了另一个)。transform.DOMoveX(4, 1).SetLink(aGameObject, LinkBehaviour.PauseOnDisableRestartOnEnable);
SetLoops( int loops, LoopType loopType = LoopType.Restart )
设置补间的循环选项 (
Restart
,Yoyo
,Incremental
)。
如果补间已经开始,则无效。此外,如果补间在序列内,则不会应用无限循环。
设置loops
为-1
将使补间循环无限。LoopType.Restart:
当一个循环结束时,它将从头开始。LoopType.Yoyo:
当一个循环结束时,它将向后播放,直到完成另一个循环,然后再次向前,然后再次向后,依此类推。LoopType.Incremental:
每次循环结束时,它的 endValue 和它的 startValue 之间的差异将被添加到 endValue,从而创建随着每个循环周期增加它们的值的补间。 此循环类型仅适用于Tweeners
.transform.DOMoveX(4, 1).SetLoops(3, LoopType.Yoyo);
SetRecyclable(bool recyclable)
设置补间的回收行为。如果您不设置它,那么将使用默认值(通过 DOTween.Init或 DOTween.defaultRecyclable设置)。
recyclable 如果 TRUE 补间将在被杀死后被回收,否则将被销毁。transform.DOMoveX(4, 1).SetRecyclable(true);
SetRelative( bool isRelative = true )
如果
isRelative
为 TRUE,则将补间设置为相对(endValue 将被计算为startValue + endValue
而不是直接使用)。在序列的情况下,将所有嵌套补间设置为相对。
重要提示:对 From tween 没有影响,因为在这种情况下,您可以在链接From
设置时直接选择 tween 是否是相对的。
如果补间已经开始,则无效。transform.DOMoveX(4, 1).SetRelative();
SetTarget(object target)
设置补间的目标(然后可以用作 DOTween 的静态方法的过滤器)。这在使用通用补间方法时很有用,而快捷方式会自动将其设置为快捷方式的目标。
注意:谨慎使用。如果您只想为补间设置一个 ID,请改用 SetId。DOTween.To(()=> myInstance.aFloat, (x)=> myInstance.aFloat = x, 2.5f, 1).SetTarget(myInstance);
SetUpdate( UpdateType updateType, bool isIndependentUpdate = false )
设置补间的更新类型 (
Normal
,Late
或Fixed
) 并最终告诉它忽略 Unity 的 timeScale。
如果补间嵌套在序列中,则无效(只有序列的最终SetUpdate
会计算在内)。
更新类型使用UpdateType
方法:UpdateType.Normal:
在 Update 调用期间更新每一帧。UpdateType.Late:
在 LateUpdate 调用期间更新每一帧。UpdateType.Fixed:
使用 FixedUpdate 调用进行更新。UpdateType.Manual:
通过手动 DOTween.ManualUpdate调用进行更新。
是独立更新如果为 TRUE,补间将忽略 Unity 的 Time.timeScale。
注意: independentUpdate 也适用,UpdateType.Fixed
但在这种情况下不推荐使用(因为在 timeScale 0 FixedUpdate 不会运行)。transform.DOMoveX(4, 1).SetUpdate(UpdateType.Late, true);
链式回调(Chained callbacks)
OnComplete( TweenCallback callback)
设置将在补间完成时触发的回调,包括所有循环。
transform.DOMoveX(4, 1).OnComplete(MyCallback);
OnKill( TweenCallback callback)
设置将在补间被杀死时触发的回调。
transform.DOMoveX(4, 1).OnKill(MyCallback);
OnPlay( TweenCallback callback)
设置将在补间设置为播放状态时触发的回调,在任何最终延迟之后。每次补间从暂停状态恢复播放时也会调用。
transform.DOMoveX(4, 1).OnPlay(MyCallback);
OnPause( TweenCallback callback)
设置将在补间状态从播放变为暂停时触发的回调。如果补间将 autoKill 设置为 FALSE,则在补间完成时也会调用此方法。
transform.DOMoveX(4, 1).OnPause(MyCallback);
OnRewind( TweenCallback callback)
设置将在补间倒带时触发的回调,通过调用
Rewind
或在向后播放时到达开始位置。
注意:倒带已经倒带的补间不会触发此回调。transform.DOMoveX(4, 1).OnRewind(MyCallback);
OnStart( TweenCallback callback)
设置将在补间启动时触发一次的回调(意味着当补间第一次设置为播放状态时,在任何最终延迟之后)。
transform.DOMoveX(4, 1).OnStart(MyCallback);
OnStepComplete( TweenCallback callback)
设置一个回调,每次补间完成一个循环周期时都会触发(这意味着,如果您将循环设置为 3,
OnStepComplete
将被调用 3 次,OnComplete
而在最后只调用一次)。transform.DOMoveX(4, 1).OnStepComplete(MyCallback);
OnUpdate( TweenCallback callback)
设置每次补间更新时都会触发的回调。
transform.DOMoveX(4, 1).OnUpdate(MyCallback);
OnWaypointChange( TweenCallback
callback) 设置将在路径补间的当前航点更改时触发的回调。
这是一个特殊的回调,与其他回调不同,它需要接受一个类型的参数int
(这将是新更改的航点索引)。void Start() { transform.DOPath(waypoints, 1).OnWaypointChange(MyCallback); } void MyCallback(int waypointIndex) { Debug.Log("Waypoint index changed to " + waypointIndex); }
顺便说一句,附加到嵌套补间的回调仍然会以正确的顺序工作。
如果你想使用带参数的回调,lambdas 来救援:// Callback without parameters transform.DOMoveX(4, 1).OnComplete(MyCallback); // Callback with parameters transform.DOMoveX(4, 1).OnComplete(()=>MyCallback(someParam, someOtherParam));
这些设置特定于 Tweeners,对序列没有影响。
除此之外SetEase
,在补间运行时链接这些设置将无效。
From(bool isRelative = false)
将补间更改为 FROM 补间(而不是常规的 TO 补间),立即将目标发送到其给定值,然后补间到其先前的值。
必须在任何其他设置之前链接,除了补间特定选项。
是相对的如果 TRUE 将补间设置为相对(FROM 值将被计算为currentValue + endValue
而不是直接使用)。使用 FROM tweens 您需要使用此参数而不是SetRelative
.// Regular TO tween transform.DOMoveX(2, 1); // FROM tween transform.DOMoveX(2, 1).From(); // FROM tween but with relative FROM value transform.DOMoveX(2, 1).From(true);
From( T fromValue, bool setImmediately = true, bool isRelative = false )
允许直接设置补间的起始值,而不是在补间开始时依赖目标的值。
必须在任何其他设置之前链接,除了补间特定选项。
从值补间开始的值。
立即设置如果为 TRUE,目标将立即设置为fromValue
,否则它将等待补间开始。
是相对的如果 TRUE 将补间设置为相对(FROM 值将被计算为currentValue + fromValue
而不是直接使用)。使用 FROM tweens 您需要使用此参数而不是SetRelative
.SetDelay(float delay)
为补间设置延迟启动。
如果补间已经开始,则无效。
如果链接到 Sequence 不会添加真正的延迟,而只是在 Sequence 的开头添加一个间隔(与PrependInterval相同)。使用SetDelay
下面的重载来改变这种行为。transform.DOMoveX(4, 1).SetDelay(1);
SetDelay(float delay,bool asPrependedIntervalIfSequence )
使用选项设置补间的延迟启动,以选择在序列的情况下如何应用延迟。
如果补间已经开始,则无效。
asPrependedIntervalIfSequence仅用于Sequences
:如果 FALSE 将延迟设置为一次性发生(对于 的默认设置Tweeners
),否则作为将在每个循环周期开始时重复的序列间隔。transform.DOMoveX(4, 1).SetDelay(1);
SetSpeedBased( bool isSpeedBased = true )
如果
isSpeedBased
为 TRUE,则将补间设置为基于速度(持续时间将表示补间移动 x 秒的单位/度数)。注意:如果您希望您的速度保持不变,请将轻松设置为Ease.Linear
。
如果补间已经开始或者它是一个序列(或序列内的嵌套补间),则没有效果。transform.DOMoveX(4, 1).SetSpeedBased();
一些 Tweeners 有特定的特殊选项可供您使用,具体取决于您正在补间的事物的类型。这一切都是自动的:如果 Tweener 具有特定选项,您将看到该 Tweener 的特定SetOptions
方法,否则您不会。这是魔法!
请注意,这些选项通常仅在通过通用方式创建补间时可用,而快捷方式的主要创建方法中已包含相同的选项。
要记住的重要一点是,虽然所有其他设置可以以任何顺序链接在一起,但SetOptions
必须在补间创建函数之后立即链接,否则将不再可用。
通用补间特定选项(已包含在相应的补间快捷方式中)
Color tween➨ SetOptions( bool alphaOnly )
设置颜色补间的特定选项。
仅 alpha如果 TRUE 仅颜色的 alpha 将被补间。DOTween.To(()=> myColor, x=> myColor = x, new Color(1,1,1,0), 1).SetOptions(true);
float tween ➨ SetOptions( bool snapping )
设置浮点补间的特定选项。
捕捉如果 TRUE 值将平滑地捕捉到整数。DOTween.To(()=> myFloat, x=> myFloat = x, 45, 1).SetOptions(true);
Quaternion tween➨ SetOptions( bool useShortest360Route )
为四元数数组的补间设置特定选项。
使用Shortest360路线如果为 TRUE( 默认值),则旋转将采用最短路径并且不会旋转超过 360°。如果为 FALSE,则将完全考虑轮换。如果补间设置为相对,则始终为 FALSE。DOTween.To(()=> myQuaternion, x=> myQuaternion = x, new Vector3(0,180,0), 1).SetOptions(true);
Rect tween➨ SetOptions( bool snapping )
为 Rect 的补间设置特定选项。
捕捉如果 TRUE 值将平滑地捕捉到整数。DOTween.To(()=> myRect, x=> myRect = x, new Rect(0,0,10,10), 1).SetOptions(true);
String tween➨ SetOptions( bool richTextEnabled, ScrambleMode scrambleMode = ScrambleMode.None,字符串scrambleChars = null )
设置字符串补间的特定选项。
启用富文本如果为 TRUE(默认),富文本将在动画时被正确解释,否则所有标签将被视为普通文本。
争夺要使用的加扰模式类型(如果有)。
如果与ScrambleMode.None
字符串不同,则会从字符的随机动画中出现,否则它将有规律地自行组合。None
( 默认):不应用加扰。All/Uppercase/Lowercase/Numerals
: 加扰时使用的字符类型。Custom
: 将使用scrambleChars
.
加扰字符包含用于自定义加扰的字符的字符串。使用尽可能多的字符(最少 10 个),因为 DOTween 使用快速打乱模式,可以使用更多字符提供更好的结果。DOTween.To(()=> myString, x=> myString = x, "hello world", 1).SetOptions(true, ScrambleMode.All);
Vector2/3/4 tween ➨ SetOptions( AxisConstraint约束, bool snapping )
为 Vector2/3/4 的补间设置特定选项。
约束告诉补间只为给定的轴设置动画。
捕捉如果 TRUE 值将平滑地捕捉到整数(非常适合像素完美移动)。DOTween.To(()=> myVector, x=> myVector = x, new Vector3(2,2,2), 1).SetOptions(AxisConstraint.Y, true);
Vector3Array tween ➨ SetOptions( bool snapping )
为 Vector3 数组的补间设置特定选项。
捕捉如果 TRUE 值将平滑地捕捉到整数(非常适合像素完美移动)。DOTween.ToArray(()=> myVector, x=> myVector = x, myEndValues, myDurations).SetOptions(true);
DOPath Specific Options
Path tween➨ SetOptions( bool closePath, AxisConstraint lockPosition = AxisConstraint.None, AxisConstraint lockRotation = AxisConstraint.None )
设置路径补间的特定选项(通过 DOPath快捷方式创建)。
关闭路径如果为 TRUE,路径将自动关闭。
锁定位置最终要锁定的运动轴。如果像这样分隔它们,则可以输入多个轴:AxisConstrain.X | AxisConstraint.Y
.
锁定旋转最终要锁定的旋转轴。如果像这样分隔它们,则可以输入多个轴:AxisConstrain.X | AxisConstraint.Y
.transform.DOPath(path, 4f).SetOptions(true, AxisConstraint.X);
Path tween➨ SetLookAt( Vector3 lookAtPosition/lookAtTarget/lookAhead, Vector3 forwardDirection, Vector3 up, bool stableZRotation )
路径补间的其他 LookAt 选项(通过 DOPath快捷方式创建)。根据您选择的过载,它可以:a) 将目标定向到给定位置,b) 将目标定向到给定变换,c) 将目标定向到具有给定前瞻的路径。
必须直接链接到补间创建方法或SetOptions
方法。
看位置要看的位置。
看向目标要看的目标。
展望定向到路径时使用的前瞻百分比(0 到 1)。
前进方向可选重载:被视为“前进”的最终方向。
默认值:转换的常规正向端。
向上Optiona 重载:定义向上方向的向量。
默认值: Vector3.up
稳定Z旋转可选重载:如果设置为 TRUE,则不会沿 Z 轴旋转目标。transform.DOPath(path, 4f).SetLookAt(new Vector3(2,1,3)); transform.DOPath(path, 4f).SetLookAt(someOtherTransform); transform.DOPath(path, 4f).SetLookAt(0.01f);
如果您之前使用过 HOTween,您就会知道 TweenParms(现在称为 TweenParams):它们用于存储设置,然后您可以将这些设置应用于多个 tween。与 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);