Unity DOTweenのプログラム例

以下に、DOTweenを使用したソースコード例をおいておく。シーケンス準備からコールバック、移動、などまで一通りまとめた。これで大体は事足りるだろう。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;

//トップページのロゴをびょーんとしたあとに無限にふわふわ動かす
public class TopRogoMove : MonoBehaviour
{

    //RectTransform指定。Getconponentは遅いんで極力つかわんことにする
    public RectTransform titleRogo;

    //アニメーションシーン
    private Sequence _myseq;
    private Sequence _myseq2;

    void Start()
    {

        //アニメーション、シーケンス準備
        _myseq = DOTween.Sequence();

        _myseq.AppendInterval(
            1.0f                            //待ち
        );

        //びよーん
        _myseq.Append(
            titleRogo.DOPunchScale(
                new Vector2(1.2f, 1.2f),    //scale1.5倍指定
                1.0f                        //アニメーション時間
            )
        );

        //数秒まつ
        _myseq.AppendInterval(
            1.0f                            //待ち
        ).AppendCallback(() => {            //コールバック設定、これをいれることで終わったあとに更に処理ができる

            //アニメーション、シーケンス準備、2つ目
            _myseq2 = DOTween.Sequence();

            //ふわふわ(ループ)
            _myseq2.Append(
                titleRogo.DOLocalMove(          //ローカル座標
                    new Vector2(0.0f, 150.0f),  //移動XY
                    2.0f                        //アニメーション時間
                )
                .SetEase(Ease.InOutBack)        //イージング指定
                .SetRelative()                  //いまいる場所から移動
            );

            _myseq2.AppendInterval(
                0.4f                            //待ち
            );

            _myseq2.Append(
                titleRogo.DOLocalMove(          //ローカル座標
                    new Vector2(0.0f, -150.0f), //移動XY
                    2.0f                        //アニメーション時間
                )
                .SetEase(Ease.InOutBack)        //イージング指定
                .SetRelative()                  //いまいる場所から移動
            );

            _myseq2.SetLoops(-1);               //-1は無限ループ

            //再生
            _myseq2.Play();

        });

        //再生
        _myseq.Play();

    }

    private void OnDisable()
    {
        //オブジェクトが破棄されるタイミングでTweenアニメーションもkillしておく
        if (DOTween.instance != null)
        {
            _myseq.Kill();
            _myseq2.Kill();
        }
    }

}

イージングの種類はこちらをよく参考にさせてもらっています。

https://honobono1212.com/2019/07/16/post-583/