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!!」 テキストを表示するというサンプルです。
// 「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
はラムダ式を使って書き換えることも可能です。
各種コールバックを学んだことで表現が広がったのではないでしょうか?さて次のチャプターでは再生中のトゥイーンの即完了・即中断といった若干例外的な内容を学びます。
ゲーム開発ではよく使うため、覚えておくことをオススメします。