ゲーム開発で役立つ!Unityでオブジェクトを回転させる方法【初心者向け】
初心者向けにUnityでオブジェクトを回転させる方法について解説しています。実際にソースコードを書きながら説明しているのですぐ分かるでしょう。ゲーム開発をする上でオブジェクトの回転は必須の知識になるので、ぜひご覧ください。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
オブジェクトの回転は、ゲームのいたる所で使用されます。
Unityでは、回転を簡単に使用できるように便利な機能がいくつも存在します。
今回は回転させるためにどのような方法があるのか、そして実際に回転させる方法を解説していきます。
目次
今日はオブジェクトを回転させる方法を実践してみよう。
田島メンター!!今回は何という機能を使うんですか〜?
いくつかの方法があるけれど、ここではtransform.Rotate()を使った手順を実際にやってみよう。
画面に立方体のオブジェクトを追加してそれに適用するよ。
はい!
オブジェクトを回転する主な方法
さっそく、オブジェクトを回転する主な方法を見てきましょう。
今回は、3つの方法を紹介します。
- transform.Rotate()
- rigidbody.angularVelocity = new Vector3()
- Assetsを使用
それぞれ詳しく見ていきましょう。
1. transform.Rotate()
Unityにおいて、最も一般的な回転方法です。
私たちにも身近なX軸、Y軸、Z軸を意識できる回転方法になります。
少し専門的な言葉を使うと、オイラー角を利用した回転になります。
記述するコードの例を挙げると、transform.Rotate(new Vector3(0,0,30))です。
このコードだとZ軸を中心に30度の回転をします(向かって時計回りに30度)。
この方法は直感的な数値設定で制御できるので、回転角がわかりやすいという利点があります。
2. rigidbody.angularVelocity = new Vector3()
こちらは、Rigidbodyを使用した回転方法です。
実は一つ目に挙げたRotate()を使用する方法だと、思わぬバグが発生する場合があります。
主に回転を繰り返し行っていると、正しく回転できなくなるバグです。
その解消策として、RigidBodyを使用した回転を行います。
この関数はオブジェクトの回転速度そのものを変更します。
そのため一度回転速度を設定すると、速度をリセットするまで回転し続けます。
3. Assetsを使用
Assetsを使用して回転させる方法です。
よく使用されるのはitweenというAssetsです。
itweenは回転の他に、位置の変更や透明度の変更などを簡単に行う事ができます。
ただしitween専用の学習が必要になります。
本記事では割愛しますので、気になる方はぜひ調べてみてください。
その他にも方法は存在しますが、よく使用されるのはこの三つの内どれかです。
実際に回転させてみよう
今回は最も一般的な、「transform.Rotate()」を使用した回転方法を試してみましょう。
この方法を利用して、回り続ける四角のオブジェクトを作成してみます。
まずCubeを作成します。
回転の動きをわかりやすくするため、xのScaleを4に設定します。
RotateCubeを言うスクリプトを作成し、以下のコードを記入していきましょう。
using UnityEngine; using System.Collections; public class RotateCube : MonoBehaviour { void Update () { transform.Rotate(new Vector3(0, 0, 5)); } }
毎フレームごとに、Z軸を中心に5度ずつ回転させます。
スクリプトをCubeに追加して実行すれば、回転し続けるCubeを確認できます。
オブジェクトへのスクリプトの追加方法は覚えているかな?
「Project」の「Assets」からスクリプトを作成して、「Hierarchy」か「Inspector」タブにドラッグ&ドロップでしたね。
その通り!エラーが出る場合はファイル名とクラス名の一致などをもう一度確認してみよう。
まとめ
今回は、Unityでの回転の基礎を学びました。
回転はプレイヤーや敵などを動かすのに使用するだけではなく、UIを華やかにしたり、ゲームに変化を与えることができます。
Unityでは回転の方法がいくつかあり混乱するかもしれません。
ですがゲーム作りを繰り返すうちに、最適な方法を選択できるようになります。
焦らずに、まずはtransform.Rotate()を使用して回転させてみましょう。
執筆してくれたメンター
mentor-s
専門学校卒業後、4年間ゲーム開発会社でプログラマーを担当。 現在は講師兼個人ゲーム開発者。 ゲーム開発ではプログラミングだけでなく、画像・音楽・モデリングなどすべて行う。 |
ゲームを再生すると、画面ではどうなったかな?
オブジェクトがその場でくるくる回転しましたね!
例えば「RigidBody」の「Use Gravity」と一緒に使うと、オブジェクトは回転しながら落下してくるよ。
他の物理属性と組み合わせたりして色々試してみよう。
なるほど、分かりました!
[お知らせ]TechAcademyではオリジナルゲームアプリが公開できるUnityオンラインブートキャンプを開催しています。現役Unityエンジニアのサポートで効率的に学びたい場合はご検討ください。