Chapter 14無料公開

🔰DOComplete・DOKill - トゥイーンの即完了・即中断

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

トゥイーンを即完了または即中断したいというケースはよく出てきます。
ゲーム開発で例えると、演出中のスキップです。

そんな時にDOComplete、DOKillを使います。

用途と挙動が違うためそれぞれ見ていきましょう。

👉DOComplete - 即完了状態へ

IEnumerator Start()
{
    transform.DOLocalMove(new Vector3(10f, 0, 0), 4f);
    yield return new WaitForSeconds(1);
    transform.DOComplete();
}

DOCompleteは即完了状態にするメソッドです。

演出のスキップを実装する際に最終状態まで
即遷移させたいときなどで使います。

👉DOKill - 中断状態へ

IEnumerator Start ()
{
    transform.DOLocalMove(new Vector3(10f, 0, 0), 4f);
    yield return new WaitForSeconds(1);
    transform.DOKill();
}

DOKillはDOCompleteと違い完了状態にはなりません。
DOKillを実行した状態でトゥイーンは完了します。

見た目の挙動としてはDOPauseと同じです。
DOPauseとの違いは、その後DOPlayを実行しても再開できない点です。

📘DOKillでも完了状態にできる

DOKillの引数にfalseを代入すると、
DOCompleteと同様に完了状態にできます。
不思議な実装ですよね。また細かい点で異なる点があります。

📖 関連チャプター

📘中断処理は常に頭に入れておく

演出を実装する上で、中断処理・スキップ処理は
常に頭の片隅に入れておくべきです。

仕様上、最初は演出スキップ機能が不要だったとしても
ユーザーの反応で 「やっぱりスキップ機能入れましょう」
といった改善という名の仕様変更はザラにあります。

であれば、最初から中断処理を前提とした設計にしておく方が
開発者、ユーザーどちらにとっても健全です。

ぜひとも常に演出の中断処理に気をつけながら
設計することをオススメします。


今までのゴール地点の指定は、かならず絶対値でしたが相対値を使うことも出来ます。次のチャプターでは相対値で指定するDOTweenについて学んでいきます。