こんにちは「DOTweenの教科書」執筆者のオオバです。
オブジェクトをくるくる回転させたいとき
どのように実装しますか?
よく紹介される Updateメソッド で
角度をセットする定番の方法もあります。
- 回転する秒数指定
- 回転するスピード指定
- イージングの指定
オオバ的には↑上の3つの指定方法をもつ
DOTweenで実装した方が
汎用性が高く 実装手段としてオススメです。
ただしDOTweenの回転処理は一筋縄ではうまくいきません。
本記事ではDOTweenで
360度以上回転させる方法について解説します。
DOTweenのRotateMode.FastBeyond360を設定する
結論を簡単にまとめると、
「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度にしていますが、
このDOTweenは回転しません。
💻ソースコード : 360度指定しているが回転しないDOTween失敗サンプル
transform.DOLocalRotate(new Vector3(0, 0, 360f), 2f);
0度と360度は同じ角度と判定 されてしまうため、
小さい角度の方、つまり0度が採用され 回転しない のです。
RotateMode.FastBeyond360を指定して360度以上回転させる
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度回転させることができます。
無限ループ(
SetLoos(-1)
)設定もしているため、指定がない限り永遠に回転します。
まとめ : 360度以上回転させたいときはFastBeyond360を指定する
記事の内容を簡単にまとめます。
- DOTweenはデフォルト角度が小さい方へ回転
- 360度以上回転したい場合はRotateMode.FastBeyond360を指定
こんな感じです。
DOTweenで回転アニメーションさせた方が、
管理もしやすくオススメです。
ぜひとも回転をマスターしましょう!
もっと詳しくDOTweenのことを知りたい方は、
DOTweenの教科書を読んでみてください。
この記事が気に入ったらフォローしよう
「Unity初心者大学」というUnity初心者向けのYouTube始めました!!
ぜひチャンネル登録をお願いします!
最後まで読んでいただきありがとうございました!
すばらしいDOTweenライフをお過ごしください。