5
1

More than 3 years have passed since last update.

DOTweenでSequenceをthis.DOKillする方法。SetIdとSetTargetの違い。

Posted at

SetIdを使おう!

SetId(this)を使用します。

MyMonobehaviour.cs
void Start()
{
    DOTween.Sequence().Append(~~).SetId(this);
}

// 上のSequenceが止まります。
void Stop()
{
    this.DOKill();
}

Sequence以外にも使用できます。

MyMonobehaviour2.cs
public Transform image1Transform;
public Transform image2Transform;

void Start()
{
    image1Transform.DOMove(Vector3.one, 3.0f).SetId(this);
    image2Transform.DOMove(Vector3.zero, 3.0f).SetId(this);
}

//両方とも止まります。
void Stop()
{
    this.DOKill();
}

上級編:SetTargetとの違い

SetTargetでも動きますが、用法が異なります。
SetTargetはターゲットを設定した上でIdをそのターゲットにするため、見た目上は正しく動くのですが、普段使いするにはSetIdを使用するのがよいそうです。

SetTargetは次のように自作のDOTweenを作る時に使います。

MyDOTween.cs
public static class MyDOTween
{
    // DOMoveのVector3 endValueをTransformに変えたもの。
    // 指定時間かけてendTargetを追いかけます。
    // endTargetの位置が変わっても追いかけてくれるのが特徴です。
    // 味方キャラが手を伸ばして取ったコインをアタマの上に移動させる時などに便利です。(そのキャラのアタマの上がendTargetになります)
    public static Tweener DOChase(this Transform target, Transform endTarget, float duration)
    {
        var firstPosition = target.position;
        var doChase = DOVirtual.Float(0, 1, duration, v => target.position = Vector3.Lerp(firstPosition, endTarget.position, v));
        doChase.SetTarget(target); // ←ここで使ってる!!!!
        return doChase;
    }
}
5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1