DOTweenあっさり目メモ2
前回の記事から恐ろしく長い時間が経過しました。
zykbgame.hateblo.jp
最近めたんこ体調が悪く、無限休憩中ですが少しずつリハビリしていきたいと思います。そんなわけで今回はDOTweenの続きメモ
アニメーションを同時に実行する
そのまま連続して記述。
transform.DOJump(new Vector3(2, 1, 2), 1.0f, 1.0f, 0.5f); transform.DORotate(new Vector3(0, 0, -90), 0.5f);
アニメーションを連結する
アニメーションを連結する場合にはSequenceにアニメーションを登録していく形で記述。主にAppend、Join、Insertを使うらしい。
Append
Appendは直前のアニメーションの後に再生したい場合に。
Sequence sequence = DOTween.Sequence(); // DOJumpの後にDORotateを行う sequence.Append(transform.DOJump(new Vector3(2, 1, 2), 1.0f, 1.0f, 0.5f) .Append(transform.DORotate(new Vector3(0, 0, -90), 0.5f);
次の再生までにインターバルを挟みたい場合にはAppendInterval。
Sequence sequence = DOTween.Sequence(); sequence.Append(transform.DOJump(new Vector3(2, 1, 2), 1.0f, 1.0f, 0.5f) .AppendInterval(0.25f) // 0.25秒待つ .Append(transform.DORotate(new Vector3(0, 0, -90), 0.5f);
アニメーションの再生後にコールバック関数を呼びたい場合にはAppendCallback。記述はラムダ式。
Sequence sequence = DOTween.Sequence(); sequence.Append(transform.DOJump(new Vector3(2, 1, 2), 1.0f, 1.0f, 0.5f) .AppendInterval(0.25f) // 0.25秒待つ .Append(transform.DORotate(new Vector3(0, 0, -90), 0.5f)) .AppendCallBack(() => { Debug.Log("コールバックが呼ばれました"); });
Join
Joinは直前のアニメーションと同時実行するように追加したいとき。動き的には最初のものと同じ。
Sequence sequence = DOTween.Sequence(); // DOJumpとDORotateを同時に行う sequence.Append(transform.DOJump(new Vector3(2, 1, 2), 1.0f, 1.0f, 0.5f) .Join(transform.DORotate(new Vector3(0, 0, -90), 0.5f));
Insert
InsertはAppendやJoinと違い前後順に関係なく並列で動作させたいときに使う。第一引数で秒数指定が必要
Sequence sequence = DOTween.Sequence(); sequence.Append(transform.DOJump(new Vector3(2, 1, 2), 1.0f, 1.0f, 0.5f) .Join(transform.DORotate(new Vector3(0, 0, -90), 0.5f)) .Insert(0, transform.DOScale(new Vector3(1.5f, 1.5f, 1.5f), 0.5f));
InsertCallbackもある。
Sequence sequence = DOTween.Sequence(); sequence.Append(transform.DOJump(new Vector3(2, 1, 2), 1.0f, 1.0f, 0.5f) .Join(transform.DORotate(new Vector3(0, 0, -90), 0.5f)) .Insert(0, transform.DOScale(new Vector3(1.5f, 1.5f, 1.5f), 0.5f)) .InsertCallback(0.5f, () => { Debug.Log("コールバックが呼ばれました"); });