开发学院

您的位置:首页>教程>正文

教程正文

DOTween 快速入门

DOTWeeen 快速入门

第一步

  下载DotWeeen并将其解压缩到unity的Assets文件夹中的任何位置(不包含在Editor, Plugins或者Resources目录中)。

设置

  导入新的dotween更新后,您必须先设置DotWeeen,以便基于unity版本导入/重新导入其他库。

  要设置DotWeeen,请从“tools/demigiant”菜单中打开dotween实用程序面板,然后选择“setupdotween”...“从出现的面板中。

dotween_utilitypanel.png

第二步

  在要使用的脚本中导入DOTween的命名空间,如下:

using DG.Tweening;

第三步(可选)

  初始化DotWeeen以设置一些全局选项:

DOTween.Init(autoKillMode, useSafeMode, logBehaviour);

  如果您不这样做(或创建您的第一个tween后),dotween将使用默认设置自动初始化,但您仍然可以随时更改它们。

前言

  DotWeeen可以以一种完全通用的方式使用,例如:

splash_lambda.png

或者您可以利用其快捷方式的力量,例如:

splash_shortcuts.png

  无论选择哪种方式,当您创建一个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的结束和开始值。