再生中のトゥイーンを一時停止して、その後再開する処理を学びます。
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型の戻り値が設定されています。この値はポーズした、または再開したトゥイーン数のことです。
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
について学びます。