Chapter 10無料公開

🔰DOPause・DOPlay - 一時停止・再開

オオバ@DOTweenの教科書
オオバ@DOTweenの教科書
2021.03.13に更新

再生中のトゥイーンを一時停止して、その後再開する処理を学びます。

DOPause&DOPlay

IEnumerator Start()
{
    transform.DOLocalMove(new Vector3(10f, 0, 0), 1f);
    yield return new WaitForSeconds(0.5f);
    // トゥイーンの一時停止
    transform.DOPause();
    yield return new WaitForSeconds(0.5f);
    // トゥイーンの再開
    transform.DOPlay();
}

DOPauseで一時停止させたトゥイーンはDOPlayで再開できます。

戻り値は対象のトゥイーン数

DOPause、DOPlay共にint型の戻り値が設定されています。
この値はポーズした、または再開したトゥイーン数のことです。

DOPause&DOPlay

IEnumerator Start()
{
    transform.DOLocalMove(new Vector3(10f, 0, 0), 1f);
    yield return new WaitForSeconds(0.5f);
    // トゥイーンの一時停止
    Debug.Log(transform.DOPause());   // 出力 : 1
    yield return new WaitForSeconds(0.5f);
    // トゥイーンの再開
    Debug.Log(transform.DOPlay());    // 出力 : 1
}

先の例ではDOLocalMoveの1トゥイーンのみなので「1」が返ってきます。

移動と回転トゥイーンを組み合わせた場合

IEnumerator Start()
{
    // 移動トゥイーン
    transform.DOLocalMove(new Vector3(10f, 0, 0), 1f);
    // 回転トゥイーン
    transform.DORotateQuaternion(Quaternion.AngleAxis(90f, Vector3.up) , 0.25f)
        .SetLoops(4, LoopType.Incremental).SetEase(Ease.Linear);
    yield return new WaitForSeconds(0.5f);
    // トゥイーンの一時停止
    Debug.Log(transform.DOPause());   // 出力 : 2
    yield return new WaitForSeconds(0.5f);
    // トゥイーンの再開
    Debug.Log(transform.DOPlay());    // 出力 : 2
}

移動と回転のトゥイーンを実行した場合、
DOPause、DOPlayはそれぞれ「2」が返ってきます。

トゥイーンの一時停止、再開処理は
バトル中のポーズ処理などで使用されますので、
覚えておくと良いでしょう。


だいぶ進んできましたが、まだまだ先は長いです。
次のチャプターではトゥイーンを最初からやり直すRestartについて学びます。