DOTween 快速入门
DOTWeeen 快速入门
第一步
下载DotWeeen并将其解压缩到unity的Assets文件夹中的任何位置(不包含在Editor, Plugins或者Resources目录中)。
设置
导入新的dotween更新后,您必须先设置DotWeeen,以便基于unity版本导入/重新导入其他库。
要设置DotWeeen,请从“tools/demigiant”菜单中打开dotween实用程序面板,然后选择“setupdotween”...“从出现的面板中。
第二步
在要使用的脚本中导入DOTween的命名空间,如下:
using DG.Tweening;
第三步(可选)
初始化DotWeeen以设置一些全局选项:
DOTween.Init(autoKillMode, useSafeMode, logBehaviour);
如果您不这样做(或创建您的第一个tween后),dotween将使用默认设置自动初始化,但您仍然可以随时更改它们。
前言
DotWeeen可以以一种完全通用的方式使用,例如:
或者您可以利用其快捷方式的力量,例如:
无论选择哪种方式,当您创建一个DOTween或者Sequence,您可以在需要时存储一个引用。
你可以用各种方式控制DOTween类:你可以使用静态的dotween方法(有其他的过滤选项):
// Rewind all tweens撤消所有的tween DOTween.RewindAll(); // Rewind all tweens with a given id根据指定id撤消tween DOTween.Rewind(myId);
直接引用
// Rewind a referenced tween myTween.Rewind();
或者更多方式
// Rewind all tweens connected to a specific transform transform.DORewind();
Tween的From属性
您可以使任何一个tween实现从指定值到它的当前值的插值变化(而不是从当前到指定值,如默认情况下),只需将一个FROM设置给它:
// Regular TO tween transform.DOMoveX(2, 1); // FROM version of the same tween transform.DOMoveX(2, 1).From(); // FROM version of the same tween, with a relative FROM value transform.DOMoveX(2, 1).From(true);
全局设置或特定设置
你可以设置 global settings 将应用于所有新创建的补间动画,或通过 具体设置 为每一个单独的补间动画。
全局设置
允许你设置默认autoPlay和autoKill 行为,ease type,global timeScale,以及类似的东西。
特定设置
特定设置是通过链分配,他们都开始以“Set”开始(除了Callbacks,是以"On"开始”),所以智能感知帮助你找到他们,这儿有些例子
// Create a transform tween and set its ease, loops and OnComplete callback transform.DOMove(new Vector3(2,2,2), 2).SetEase(Ease.OutQuint).SetLoops(4).OnComplete(myFunction); // Same as above but using line breaks to make it more readable transform.DOMove(new Vector3(2,2,2), 2) .SetEase(Ease.OutQuint) .SetLoops(4) .OnComplete(myFunction); // Same as above but storing the tween and applying settings without chaining Tween myTween = transform.DOMove(new Vector3(2,2,2), 2); myTween.SetEase(Ease.OutQuint); myTween.SetLoops(4); myTween.OnComplete(myFunction);
此外,一些tween类型有特殊的附加选项,取决于value type的类型,它可以通过setoptions()设置。请记住,setoptions()是特殊的,并且需要在主要的tween创建方法之后立即设置:
// Same as the previous examples, but force the transform to // snap on integer values (very useful for pixel perfect stuff) transform.DOMove(new Vector3(2,2,2), 2) .SetOptions(true) .SetEase(Ease.OutQuint) .SetLoops(4) .OnComplete(myFunction);
你甚至可以使用SetAs()将所有设置从一个tween对象复制到另一个:
// Create a tween with some settings and store it as a Tween Tween myTween = transform.DOMove(new Vector3(2,2,2), 2) .SetEase(Ease.OutQuint) .SetLoops(4) .OnComplete(myFunction); // Create another tween and apply the same settings as the previous one material.DOColor(Color.red, 2).SetAs(myTween);
(这两者都将循环4次,一个OutQuint完成后,他们将调用相同的OnComplete方法,即使它们实际上是完全不同的对象和类型))
tween的生命周期
当你创建一个tween,它将自动播放(除非你改变了全局的default autoplay行为),直到它完成所有的循环。
当一个tween完成时,它会自动被回收(除非你改变了全局的default autokill行为),这意味着你再也不能使用它了。
如果你想重用相同的tween,只需要将它的autokill行为设置为false (通过改变全局autokill设置,或者将您的tween类的setautokill设置为false)。
如果你的tween的目标变成null,而一个tween正在引用它,那么可能会引发空指针错误。您必须小心使用或激活安全模式
缓存和最大tweens
如果你激活回收站,dotween将缓存你创建的所有tween类,那么你就可以反复重用它们,而不是创建新的tween。
此外,为了避免不必要的资源浪费,它将自己设置为同时运行的最大200个tweeners和50个序列。如果您需要更多,dotween将自动增加其大小,但您也可以直接设置它,以在自动调整大小发生时避免卡住:
/ /将最大值tweeners设置为3000,最大序列设置为200 DOTween.SetTweensCapacity(3000, 200);
在任何时候,您想要清除DOTween缓存并完全重置它,您可以调用DOTween.Clear(),这将回收所有的Tween类和清除所有缓存。
回收Tween
你不需要手工回收Tween。相反,您可以选择自动回收它们全部或只回收特定的部分。
不过,您可以随时更改tweener的结束和开始值。