【Unity】UGUIでDOTweenを使ってアニメーション

  • |
【Unity】UGUIでDOTweenを使ってアニメーション
   

Unityの新しいUIシステムであるUGUIについて勉強をしてみました。
今回は「アニメーション」についてです。
UnityのAssetStoreにある「DOTween」を使ってみました。
Unity5.01を利用しています。

DOTween

DOTween (HOTween v2)
簡単ですが、DOTweenを利用するためにアニメーションスクリプトをまとめてみました。

初期化

//ネームスペース
using DG.Tweening;

DOTween.Init(false, true, LogBehaviour.ErrorsOnly);

動かす – Move

RectTransform image1;

//グローバルの場合
image1.DOMove(new Vector3(100,200,0),1.0f);

//ローカルの場合
image1.DOLocalMove(new Vector3(100,200,0),1.0f);

グローバル・ローカル isRelative()

上記で上げたローカル・グローバルがややこしく感じられる場合[isRelative()]を利用すれば「相対的」に動かすことができます。
//見た目の位置から移動する
image1.DOMove(new Vector3(100,200,0),1.0f).isRelative();

繰り返し – SetLoops()

image1.DOMove(new Vector3(100,200,0),1.0f).SetLoops(3,LoopType.Yoyo);

  • LoopType.Yoyo : 逆方向
  • LoopType.Restart : スタート位置同じ

コールバック – callback

image1.DOLocalMoveX(200,2).OnComplete(hogeCallback);

void hogeCallback(){

	Debug.Log("callback");

}


連続したアニメーション – Sequence

Sequence _myseq = DOTween.Sequence();
_myseq.Append(image1.DOLocalMoveY(100,2));
_myseq.Append(image1.DOLocalMoveY(0,2));

同時 – Join

_myseq.Append(image1.DOLocalMoveY(100,2));
_myseq.Join(image1.DOLocalRotate(new Vector3(0, 0, 360), 2));

最初に実行 - Prepend

//Prependで挿入したアニメーションが最初に実行される
_myseq.Prepend(image1.DOLocalMoveX(200, 2.0f));

アニメーションの追加 – Insert

指定した秒数後にアニメーションを追加することができます。
_myseq.Insert(0, image1.DOLocalMove(new Vector3(200,0,0),2));

コールバック – callback

_myseq.AppendCallback(hogeCallback);

インターバル – Interval

_myseq.AppendInterval(1.0f);

アニメーション時間を取得

Sequenceの時間を取得する際には、以下のような記述をします。
float time = _myseq.Duration();

最後に

cocos2dxのActionクラスのように利用できることがわかりました。
ドキュメントにはその他色々と便利なメソッド等が記載されているので、実際に利用する場合はこちらを参考にしていただければと思います。


【DOTweenドキュメント】


UnityゲームUI実践ガイド 開発者が知っておきたいGUI構築の新スタンダードUnityゲームUI実践ガイド 開発者が知っておきたいGUI構築の新スタンダード
池和田有輔,時村良平

エムディエヌコーポレーション
売り上げランキング : 7352

Amazonで詳しく見る

Related Posts Plugin for WordPress, Blogger...