こんにちは「DOTweenの教科書」執筆者のオオバです。
DOTweenには実行タイミングや状態に応じたコールバック関数をセットすることが出来ます。
今回検証に使うコードはこちら。
様々なケースが存在するので、
一つ一つ実行順を確認していきます。
1.上記のソースを実行する
すると、以下のような出力結果になります。
OnStartから始まり、OnKillで終わるようです。フムフム。
- OnStart
- OnPlay
- OnUpdate...
- OnStepComplete
- OnComplete
- OnKill
さて、ここから様々なパターンでTweenを再生させたり、停止したりしてみます。
それによって、どのコールバックがどのような順で呼ばれるのか見ていきます。
2-1.Tween途中でKill(false)する
- OnStart
- OnPlay
- OnUpdate...
- OnKill
2-2.Tween途中でKill(true)する
- OnStart
- OnPlay
- OnUpdate...
- OnComplete
- OnKill
3-1.Tween途中でComplete(false)する
- OnStart
- OnPlay
- OnUpdate...
- OnComplete
- OnKill
3-2Tween途中でComplete(true)する
- OnStart
- OnPlay
- OnUpdate...
- OnStepComplete
- OnComplete
- OnKill
4-1Tween途中でPause()する
- OnStart
- OnPlay
- OnUpdate...
- OnPause
4-2.Tween途中でPause()後、Play()する
- OnStart
- OnPlay
- OnUpdate...
- OnPause
- OnPlay
- OnUpdate...
4-3.Tween途中でPause後、Restart()する
- OnStart
- OnPlay
- OnUpdate...
- OnRewind
- OnPause
- OnUpdate...
4-4.Tween途中でPause後、Restart()する
- OnStart
- OnPlay
- OnUpdate...
- OnPause
- OnUpdate ※1度しか呼ばれません
- OnRewind
- OnPlay
- OnUpdate...
Pause後に1度だけOnUpdateが呼ばれる謎仕様。
そもそもなぜOnUpdateが呼ばれるのか。この辺はソースを辿っていこうと思います。今は過酷な現実を受け入れることにしましょう。
5-1.3回ループ設定してTween
- OnStart
- OnPlay
- OnUpdate...
- OnStepComplete
- OnUpdate...
- OnStepComplete
- OnUpdate...
- OnStepComplete
- OnComplete
- OnKill
5-2.負の数でループ設定してTween
- OnStart
- OnPlay
- OnUpdate...
- OnStepComplete
- OnUpdate...
- OnStepComplete
- OnUpdate...
5-3.負の数でループ設定したTween中にKill(true or false)
- OnStart
- OnPlay
- OnUpdate...
- OnStepComplete
- OnUpdate...
- OnStepComplete
- OnUpdate...
- OnKill
5-4.負の数でループ設定したTween中にComplete()したら
- OnStart
- OnPlay
- OnUpdate...
- OnStepComplete
- OnUpdate...
- OnStepComplete
- OnUpdate...
※Tweenは止まりません
👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!
もくじ
まとめ
- OnStart, OnComplete, OnKillはTween通して一度しか呼ばれる
- OnUpdate, OnPlay, OnRewind, OnStepComplete, OnPauseは何度でも呼ばれる
- Tweenが終了するときは必ずOnKillが呼ばれる
- Tween開始は必ずOnStartが呼ばれる
まとめるとこんな感じでしょうか。
4.Tween途中でPause後、Restart()する 以外は、一度理解すれば覚えられそうな実行順でした。
これでコールバックの順番で迷うことは無いですね!!
この記事が気に入ったらフォローしよう
オススメ記事
検証環境
- Unity5.4.2f1
- DOTween v1.1.310