いつも忘れるのでDOTweenの自分用まとめ
- DOTweenとは
- DOTweenでできるアニメーションのイメージ
- 初期設定
- 公式ドキュメント
- DOTweenを使うにはusing設定必須
- 1つのアニメーションにオプションをつける
- 順番にアニメーション
- 任意のタイミングでアニメーション
- 魅力的なUIノウハウ
- おわりに
DOTweenとは
unity-yuji.xyz
面倒な処理も1行でかける
DOTweenでできるアニメーションのイメージ
初期設定
DOTweenの使い方 Tweenアニメーション入門【Unity】|アマガミナブログ
公式ドキュメント
DOTweenを使うにはusing設定必須
using DG.Tweening;
1つのアニメーションにオプションをつける
transform.DOLocalMove(new Vector3(10f, 0, 0), 1.0f)//ローカル座標移動 座標,移動にかける時間 .SetDelay(1f)//SetDelay(待機時間/秒) .SetRelative()//SetRelative() 相対的に移動する 例:Tween前の座標が(5, 0, 0)の時に(15, 0, 0)へ動くようになる .SetLoops(2, LoopType.Incremental)//SetLoops(ループ回数, LoopType) ループ回数は-1で永久ループ //Incremental:前回の位置を基準にしながら差分移動 //Restart:同じ動きを繰り返す //Yoyo:ヨーヨーのように、進んでは戻るを繰り返す .SetEase(Ease.OutQuad);//SetEase(Ease or AnimationCurve) アニメーションの進み具合を指定する。 //DOTweenで用意されているEase型で指定するか、Unity標準のAnimationCurve型を渡します。 //Ease型なら https://easings.net から選ぶ
順番にアニメーション
Sequence sequence = DOTween.Sequence()//Sequence型の変数 sequenceを宣言 .Append(transform.DOScale(1.1f, 1.0f) .SetEase(Ease.OutQuart) .SetLoops(4, LoopType.Restart))//オプション付きアニメーション .Append(transform.DOScale(1.0f, 0.8f))//オプション無しアニメーション .OnComplete(() => Debug.Log("全部終了"));//完了のコールバック //Tweenの追加 //Append() 前のTweenが終わってから実行 //Join() 前のTweenと同時に実行 //Prepend() 再生済のものを除いて、先頭に追加 //注意!オプションはAppend()などのカッコの中に書かないとsequence全体に適用されてしまう //オプションおさらい //SetDelay(待機時間/秒) //SetRelative() 相対的に移動する 例:Tween前の座標が(5, 0, 0)の時に(15, 0, 0)へ動くようになる //SetLoops(ループ回数, LoopType) ループ回数は-1で永久ループ //Incremental:前回の位置を基準にしながら差分移動 //Restart:同じ動きを繰り返す //Yoyo:ヨーヨーのように、進んでは戻るを繰り返す //SetEase(Ease or AnimationCurve) アニメーションの進み具合を指定する。 //DOTweenで用意されているEase型で指定するか、Unity標準のAnimationCurve型を渡します。 //Ease型なら https://easings.net から選ぶ //等速ならEase.Linear
任意のタイミングでアニメーション
using UnityEngine; using DG.Tweening; public class ButtonAnime : MonoBehaviour { private Tween t; void Start() { t = transform.DOScale(1.1f, 0.8f) .SetEase(Ease.OutQuart)//オプション .SetLoops(-1, LoopType.Restart);//-1で無限ループ t.Play();//再生 } //ボタンにこの関数を割り当て public void AnimeStop() { t.Kill();//アニメの破棄 無限ループはKillで破棄する transform.DOScale(1.0f, 0);//元のスケールに戻す } }
//一時停止 t.Pause(); // 最初から再生 t.Restart(); //終了(無限ループの終了には使えない) t.Complete();
任意のタイミングでアニメーションストップ pic.twitter.com/JiiMjOAWyk
— まる@毎日アプリ開発 ダンスドリームMV【公式】 (@Maru60014236) 2021年1月17日
魅力的なUIノウハウ
おわりに
ゆーじさん天才