個人的勉強メモ置き場

プログラミングど素人のメモ置き場

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);

f:id:zykb:20201207000647g:plain

アニメーションを連結する

アニメーションを連結する場合にはSequenceにアニメーションを登録していく形で記述。主にAppendJoinInsertを使うらしい。

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);
f:id:zykb:20201206173424g:plain
Append

次の再生までにインターバルを挟みたい場合には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);
f:id:zykb:20201206215506g:plain
AppendInterval

アニメーションの再生後にコールバック関数を呼びたい場合には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("コールバックが呼ばれました");
         });
f:id:zykb:20201206232648g:plain
AppendCallback
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));
f:id:zykb:20201207000647g:plain
Join
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));

f:id:zykb:20201207150832g:plain
Insert

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("コールバックが呼ばれました");
         });
f:id:zykb:20201207185819g:plain
InsertCallback