• DOTween入门
    • 1、在此之前
    • 2、一个介绍
    • 3、全局和特定设置
    • 4、一个补间的生命周期
    • 5、缓存和最大补间
    • 6、回收补间

    DOTween入门

    1、在此之前

    第1步:

    下载DOTween并将其解压缩到 Unity Assets文件夹中的任何位置(不在EditorPluginsResources目录中)。

    建立导入新的DOTween更新后,您必须设置DOTween才能根据Unity版本导入/重新导入其他库并激活/取消激活模块。

    要设置DOTween,请从“Tools / Demigiant”菜单中打开DOTween Utility Panel,然后从出现的面板中选择“Setup DOTween …”。

    第2步:

    在要使用它的每个类/脚本中导入DOTween的命名空间:

    1. using DG.Tweening;

    第3步:

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

    1. DOTween.Init(autoKillMode, useSafeMode, logBehaviour);

    如果您不这样做(或在创建第一个补间后执行此操作),DOTween将使用默认设置自动初始化,但您仍可以随时更改它们。

    2、一个介绍

    DOTween可以完全通用的方式使用,如下所示:

     9.1 入门  - 图1

    或者你可以利用它的快捷方式,如下所示:

     9.1 入门  - 图2

    无论您选择哪种方式,当您创建补间时,都会返回一个TweenerSequence(这里是对差异的解释),因此您可以根据需要存储对它的引用。您也可以将它们存储为Tween,而无需关心区别。

    您可以通过各种方式控制补间:您可以使用静态DOTween方法(具有其他筛选选项)…

    1. DOTween.RewindAll();
    2. DOTween.Rewind(myId);

    …直接补间引用…

    1. myTween.Rewind();

    ……或更多快捷方式

    1. transform.DORewind();

    来自Tweens

    只需将From设置链接到它,您几乎可以将任何补间播放从给定值播放到当前值(而不是从当前值的TO给定值,默认情况下):

    1. transform.DOMoveX(2, 1);
    2. transform.DOMoveX(2, 1).From();
    3. transform.DOMoveX(2, 1).From(true);

    3、全局和特定设置

    您可以设置将应用于所有新创建的补间的全局设置,或者为您创建的每个补间设置特定设置。

    全局设置

    全局设置允许您设置默认的autoPlayautoKill行为,缓动类型,全局timeScale以及类似的东西。

    具体设置

    通过链接分配特定设置,它们都以“Set” 开头(回调除外,以“On” 开头),因此IntelliSense将帮助您找到它们。

    在这里,举一些链接的例子:

    1. transform.DOMoveX(new Vector3(2,2,2), 2).SetEase(Ease.OutQuint).SetLoops(4).OnComplete(myFunction);
    2. transform.DOMove(new Vector3(2,2,2), 2)
    3. .SetEase(Ease.OutQuint)
    4. .SetLoops(4)
    5. .OnComplete(myFunction);
    6. Tween myTween = transform.DOMove(new Vector3(2,2,2), 2);
    7. myTween.SetEase(Ease.OutQuint);
    8. myTween.SetLoops(4);
    9. myTween.OnComplete(myFunction);

    此外,某些补间类型具有特殊的附加选项,具体取决于补间值的类型,可以通过它设置SetOptions()。请记住这SetOptions()是特殊的,需要在主补间创建方法后立即链接

    1. transform.DOMove(new Vector3(2,2,2), 2)
    2. .SetOptions(true)
    3. .SetEase(Ease.OutQuint)
    4. .SetLoops(4)
    5. .OnComplete(myFunction);

    您甚至可以使用SetAs()将所有设置从一个补间复制到另一个补间:

    1. Tween myTween = transform.DOMove(new Vector3(2,2,2), 2)
    2. .SetEase(Ease.OutQuint)
    3. .SetLoops(4)
    4. .OnComplete(myFunction);
    5. materials.DOColor(Color.red, 2).SetAs(myTween);

    (两个补间都会以OutQuint的方式循环4次,完成后它们将调用相同的OnComplete方法,即使它们实际上是在完全不同的对象和类型之间进行补间)

    4、一个补间的生命周期

    创建补间时,它将自动播放(除非您更改全局defaultAutoPlay行为),直到它完成所有循环。

    补间完成后会自动终止(除非您更改全局defaultAutoKill行为),这意味着您将无法再使用它。

    如果要重用相同的补间,只需将其autoKill行为设置为FALSE(通过更改所有补间的全局autoKill设置,或将SetAutoKill(false)链接到补间)。

    如果补间播放时补间的目标变为NULL,则可能会发生错误。您必须小心或激活安全模式。

    5、缓存和最大补间

    如果激活回收 DOT之间缓存您创建的所有补间,则可以重用它们而不是创建新的补间。 此外,为了避免使用超过必要的资源,它将自己设置为同时运行的最多200个Tweeners和50个序列。如果您需要更多,DOTween会自动增加其大小,但您也可以直接设置它以避免在自动调整大小时出现打嗝:

    1. DOTween.SetTweensCapacity(3000, 200);

    如果您想在任何时刻清除DOTween的缓存并完全重置它,您可以调用DOTween.Clear(),它将终止所有补间并清除所有缓存。

    6、回收补间

    您不需要手动回收补间。相反,您可以选择自动回收所有或仅回收特定的回收。

    不过,您可以随时更改Tweener的结束并启动值。

    ?