Chapter 11無料公開

🔰DORestart - 最初からやり直す

トゥイーンは最初からやり直すことができます。

IEnumerator Start()
{
    transform.DOLocalMove(new Vector3(10f, 0, 0), 1f)
        .SetDelay(0.5f);
    yield return new WaitForSeconds(1f);
    // 最初からトゥイーンをやり直す
    transform.DORestart();
}

👆こちらのサンプルは1秒後に最初からやり直しています。
トゥイーンを最初からやり直す場合はDORestartメソッドを実行します。

📘完了したトゥイーンは動かない

以降のチャプターで解説しますが完了したトゥイーンをRestartできません。
※前述のDOPause、DOPlayも同様です。

完了トゥイーンの判定はDOTween.IsTweeningメソッドで
確認できます。

// 完了トゥイーン判定
if (DOTween.IsTweening(transform))
{
    // 完了していないためRestartする
    transform.DORestart();
}

Restart時にDelayを無視する

IEnumerator Start()
{
    transform.DOLocalMove(new Vector3(10f, 0, 0), 1f)
        .SetDelay(0.5f);
    yield return new WaitForSeconds(1f);
    // 最初からトゥイーンをやり直す
    transform.DORestart(false);
}

DORestartの引数にfalseをセットすることで、
トゥイーン開始前の待機時間を無視できます。

本来であれば0.5秒待機してからトゥイーン開始するところを、
待機時間0秒で最初からやり直すことができるのです。

📘自動で完了しないトゥイーンの設定

Chapter 47📕DOTweenの設定画面を完全理解するで解説している
AutoKillをOFFにすると、トゥイーンは完了しても内部的に
「完了状態」になりません。

この場合は例外でRestartできます。


次のチャプターでは今回学んだRestartと親しいRewindです。
あまり使うはないかもしれませんが、DOTween使いとして覚えておきましょう。