ドキュメント
namespace
using DG.Tweening;
移動
(RectTransform)(gameObject.transform).DOLocalMove(new Vector3(8, 0, 0), 0.5f); //8,0,0の位置に移動
DOMove
はワールド座標での移動。DOLocalMove
はローカル座標。
絶対座標ではなく相対座標で移動したい。
(a,b,c)に移動したい、という場合ではなく、今いる位置から(d,e,f)移動したいという場合は、.SetRelative
をつけてあげれば良い。
(RectTransform)(gameObject.transform).DOLocalMove(new Vector3(8, 0, 0), 0.5f).SetRelative(); //今いる場所から右へ8移動
シーケンス
Sequence seq = DOTween.Sequence(); seq.Play();
ループ数を指定する
Sequence seq = DOTween.Sequence(); seq.SetLoops(-1); //-1なら無限ループ seq.Play();
Append
Sequence seq = DOTween.Sequence(); seq.Append(((RectTransform)scrollArrowDown.transform).DOLocalMoveY(10, 0.5f).SetRelative()); seq.Append(((RectTransform)scrollArrowDown.transform).DOLocalMoveY(-10, 0.5f).SetRelative()) seq.Play();
AppendInterval
シーケンス中にxx秒待つ
Sequence seq = DOTween.Sequence();
sequence.AppendInterval(0.3f);
seq.Play();
AppendCallback
CallBackを設定
Sequence seq = DOTween.Sequence(); sequence.AppendCallback (()=>{ if(onFinish != null){ onFinish(); } }); seq.Play();
Fade
Image.DOFade
CrossFadeAlpha は unityの仕組みでdotweenじゃないけどおなじようなことできる
DoKill
今行っているアニメを消す。 component は uGUIの親のComponent。
component.DOKill()
onComplete
↓の例だと、スケールで小さくしてからゲームオブジェクトをDestroyするみたいな感じ
transform.DOScale(0, this.effectTime).onComplete = () => { Destroy(gameObject); };
xx秒後にする
SetDelay
を使うことで、xx秒後にtweenの処理をさせることができる。
↓の例は、0.5秒後に0.6秒かけてサイズを200x200にする。シーケンス作るまでもない動きならこっちの方がいい。
rectTransform.DOSizeDelta(new Vector2(200, 200), 0.6f, true).SetDelay(0.5f)
To 〇〇の値をxxにする
以下は、CanvasGroupのalpha の値を0.5f秒かけて、0にする例
CanvasGroup canvasGroup = effect.gameObject.AddComponent<CanvasGroup>(); DOTween.To(() => canvasGroup.alpha, (n) => canvasGroup.alpha = n, 0, 0.5f).onComplete = () => { Destroy(effect.gameObject); };
xxの方向に向きを変える DOLookAt
Vector3 targetPos = targetObj.transform.position; // transform.DOLookAt(targetPos, 0.25f);
▲白と黒のキャラが、赤いキャラの方向を向きます