DOTweenを利用してトゥイーンさせる

アセットストアからダウンロードする

アセットストアから検索してダウンロード、インポートを行います。

DOTween Utility Panelのセットアップ

セットアップ前 セットアップ後

Setup DOTween...をクリックしてセットアップを行います。

ライブラリをインポートする

1
using DG.Tweening;

Cubeなどの3Dオブジェクトをトゥイーンさせる

まず動かしたいオブジェクトのTransformを取得します。 自身のゲームオブジェクトのTransformを取得したい場合にはtransformだけで取得できますが、別の特定のゲームオブジェクトのTransformを取得したい場合には.transform.GetComponent<Transform>()などを使用してTransformを取得します。

1
Transform targetTransform = targetGameObject.transform;

あとはそのTransformにDOTweenのメソッドを実行します。

1
targetTransform.DOMove (new Vector3 (5f, 5f, 2f), 1f, false);

UIなどのRectTransformをトゥイーンさせる

まず要素からRectTransformを取得して、

1
RectTransform rectTransform = taerget.GetComponent<RectTransform>();

DOTweenのメソッドを実行します。

1
rectTransform.DOAnchorPos(new Vector2(100, 100), 2);

DOAnchorPos以外にも様々なメソッドが用意されています。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
rectTransform.DOAnchorPos(new Vector2(100, 100), 2);//座標を移動させる(座標、秒)
rectTransform.DOAnchorPosX(100, 2);//X軸を移動させる(座標、秒)
rectTransform.DOAnchorPosY(100, 2);//Y軸を移動させる(座標、秒)
rectTransform.DOSizeDelta(new Vector2(0, 0), 2);//サイズを変更する(サイズ、秒)
rectTransform.DOJumpAnchorPos(new Vector2(rectTransform.anchoredPosition.x, rectTransform.anchoredPosition.y), 30.0f, 10, 2);//ジャンプさせる(座標、強さ、回数、秒)
rectTransform.DOPunchAnchorPos(new Vector2(0, 10.0f), 2, 10, 0.5f);//プルプルさせる(同じ方向に震える)(方向、時間、振動、弾性)
rectTransform.DOShakeAnchorPos(2, 10);//シェイクさせる(色々な方向に震える)(時間、力、振動、ランダム)
rectTransform.DOPivot(new Vector2(0, 0), 2);//Pivotの値を変更する(座標、秒)
rectTransform.DOPivotX(0, 2);//PivotのX値を変更する(座標、秒)
rectTransform.DOPivotY(0, 2);//PivotのY値を変更する(座標、秒)
rectTransform.DOAnchorMax(new Vector2(0, 0), 2);//AnchorsのMaxの値を変更する(座標、秒)
rectTransform.DOAnchorMin(new Vector2(0, 0), 2);//AnchorsのMinの値を変更する(座標、秒)
rectTransform.DOAnchorPos3D(new Vector3(100, 100, 100), 2);//AnchorPos3Dの値を変更する(座標、秒)

トゥイーン後にメソッドを実行する

1
2
3
rectTransform.DOAnchorPosX(100, 2).OnComplete(() => {
  ~
});

トゥイーンを遅延させる

1
rectTransform.DOAnchorPosX(100, 2).SetDelay(1);

トゥイーンのイージングを調整する

1
2
3
4
rectTransform.DOAnchorPosX(100, 2).SetEase(Ease.Linear);
rectTransform.DOAnchorPosX(100, 2).SetEase(Ease.InBack);
rectTransform.DOAnchorPosX(100, 2).SetEase(Ease.InOutExpo);
rectTransform.DOAnchorPosX(100, 2).SetEase(Ease.OutElastic);

トゥイーンを連続して実行する

1
...

数値などの値のみトゥイーンさせる

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
int before = 0;
int after = 10;
DOTween.To(
  () => before,
  (i) =>
  {
    print(i);
  },
  after,
  1f
);