渋谷ほととぎす通信

「Unityをわかりやすく」初心者のためのゲーム作りブログ

DOTweenで360度以上くるくる回転させる方法

DOTweenで360度以上くるくる回転させる方法

こんにちは「DOTweenの教科書」執筆者のオオバです。

オブジェクトをくるくる回転させたいとき
どのように実装しますか?

よく紹介される Updateメソッド
角度をセットする定番の方法もあります。

  • 回転する秒数指定
  • 回転するスピード指定
  • イージングの指定

オオバ的には↑上の3つの指定方法をもつ
DOTweenで実装した方が
汎用性が高く 実装手段としてオススメです。

ただしDOTweenの回転処理は一筋縄ではうまくいきません。

本記事ではDOTweenで
360度以上回転させる方法について解説します。

DOTweenのRotateMode.FastBeyond360を設定する

DOTweenで360度以上くるくる回転させる方法_0

結論を簡単にまとめると、
DOLocalRotateメソッドの第3引数に
RotateMode.FastBeyond360の指定をする
」です。

💻ソースコード : くるくる360度以上DOTweenで回転させるサンプル
transform.DOLocalRotate(new Vector3(0, 0, 720f), 2f,  
    RotateMode.FastBeyond360);  

↑コチラのコードを実行すると、
2秒かけて720度回転します。

RotateMode.FastBeyond360 を指定すると
360度以上回転させることができるのです。

ここから詳細を解説していきます。

👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!

DOTweenはデフォルトで角度の小さい方へ回転する

DOTweenで360度以上くるくる回転させる方法_1

DOTweenはデフォルト角度が小さい方へ回転します。
たとえば以下のコード。

指定角度は360度にしていますが、
このDOTweenは回転しません。

💻ソースコード : 360度指定しているが回転しないDOTween失敗サンプル
transform.DOLocalRotate(new Vector3(0, 0, 360f), 2f);  

0度と360度は同じ角度と判定 されてしまうため、
小さい角度の方、つまり0度が採用され 回転しない のです。

RotateMode.FastBeyond360を指定して360度以上回転させる

DOTweenで360度以上くるくる回転させる方法_2

DOLocalRotateメソッドの第3引数には
RotateModeを指定できます。

RotateMode.FastBeyond360 を設定することで
360度と指定すれば、1回転。

360度以上をすればその分だけ回転します。

💻ソースコード : 6秒かけて360度回転し続けるDOTweenサンプル
transform.DOLocalRotate(new Vector3(0, 0, 360f), 6f, RotateMode.FastBeyond360)  
    .SetEase(Ease.Linear)  
    .SetLoops(-1, LoopType.Restart);  

DOLocalRotateの第3引数に
RotateMode.FastBeyond360を設定することで、
このように360度回転させることができます。

DOTweenで360度以上くるくる回転させる方法_3

無限ループ(SetLoos(-1))設定もしているため、
指定がない限り永遠に回転します。

まとめ : 360度以上回転させたいときはFastBeyond360を指定する

DOTweenで360度以上くるくる回転させる方法_4

記事の内容を簡単にまとめます。

  • DOTweenはデフォルト角度が小さい方へ回転
  • 360度以上回転したい場合はRotateMode.FastBeyond360を指定

こんな感じです。

DOTweenで回転アニメーションさせた方が、
管理もしやすくオススメです。

ぜひとも回転をマスターしましょう!

もっと詳しくDOTweenのことを知りたい方は、
DOTweenの教科書を読んでみてください。

オオバ
オオバ
無料ページだけでもかなり学べますよ!

「Unity初心者大学」というUnity初心者向けのYouTube始めました!!
ぜひチャンネル登録をお願いします!

最後まで読んでいただきありがとうございました!
すばらしいDOTweenライフをお過ごしください。

オススメ記事