Chapter 13無料公開

🔰OnComplete - 完了通知を受け取る

オオバ@ohbashunsuke
オオバ@ohbashunsuke
2022.06.06に更新

DOTweenには 「トゥイーンが終了した時」 、 「トゥイーンが開始した時」 といったイベントが受け取れるようにコールバック関数が定義されています。

コールバック 実行タイミング 呼ばれる回数
OnComplete トゥイーン完了時 0 or 1回
OnKill トゥイーン完了時 1回
OnPlay トゥイーン開始時 1回
OnPause 一時停止時 0回以上
OnRewind Restart時 0回以上
OnStart トゥイーン開始時 1回
OnStepComplete 繰り返し時 0回以上
OnUpdate 毎フレーム 0回以上
OnWaypointChange 行き先が変更した時 0回以上

たとえばOnUpdateはトゥイーン実行中、毎フレーム指定したメソッドを呼び出すといったことも可能です。

頻出コールバックはOnComplete

経験的にもっとも業務で使うのはOnCompleteで、トゥイーンが完了した時に一度だけ呼ばれます。本チャプターで紹介するのはOnComplete時に 「Complete!!」 テキストを表示するというサンプルです。

OnComplete

// 「Complete!!」テキストのGameObject
[SerializeField] private GameObject _completeObject;

void Start()
{
    transform.DOLocalMove(new Vector3(10f, 0, 0), 1f)
        .OnComplete(MyCompleteFunction);
}
// 「Complete!!」テキストを表示するメソッド
private void MyCompleteFunction()
{
    _completeObject.SetActive(true);
}

OnCompleteメソッドでトゥイーン完了時に呼びたい関数をセットします。

今回のサンプルの場合はMyCompleteFunctionを指定します。

OnCompleteにはラムダ式も使えます

transform.DOLocalMove(new Vector3(10f, 0, 0), 1f)
        .OnComplete(() => _completeObject.SetActive(true));

👆サンプル内のMyCompleteFunctionはラムダ式を使って書き換えることも可能です。


各種コールバックを学んだことで表現が広がったのではないでしょうか?さて次のチャプターでは再生中のトゥイーンの即完了・即中断といった若干例外的な内容を学びます。

ゲーム開発ではよく使うため、覚えておくことをオススメします。