ゲーム開発で役立つ!Unityでオブジェクトを回転させる方法【初心者向け】

初心者向けにUnityでオブジェクトを回転させる方法について解説しています。実際にソースコードを書きながら説明しているのですぐ分かるでしょう。ゲーム開発をする上でオブジェクトの回転は必須の知識になるので、ぜひご覧ください。

TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

オブジェクトの回転は、ゲームのいたる所で使用されます。

Unityでは、回転を簡単に使用できるように便利な機能がいくつも存在します。

今回は回転させるためにどのような方法があるのか、そして実際に回転させる方法を解説していきます。

 

目次

 

田島悠介

今日はオブジェクトを回転させる方法を実践してみよう。

大石ゆかり

田島メンター!!今回は何という機能を使うんですか〜?

田島悠介

いくつかの方法があるけれど、ここではtransform.Rotate()を使った手順を実際にやってみよう。

画面に立方体のオブジェクトを追加してそれに適用するよ。

大石ゆかり

はい!

 

オブジェクトを回転する主な方法

さっそく、オブジェクトを回転する主な方法を見てきましょう。

今回は、3つの方法を紹介します。

  1. transform.Rotate()
  2. rigidbody.angularVelocity = new Vector3()
  3. 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専用の学習が必要になります。

本記事では割愛しますので、気になる方はぜひ調べてみてください。

その他にも方法は存在しますが、よく使用されるのはこの三つの内どれかです。

 

[PR] Unityを使ったゲーム開発で挫折しない学習方法を動画で公開中

実際に回転させてみよう

今回は最も一般的な、「transform.Rotate()」を使用した回転方法を試してみましょう。

この方法を利用して、回り続ける四角のオブジェクトを作成してみます。

まずCubeを作成します。

回転の動きをわかりやすくするため、xのScaleを4に設定します。

unity_06_02

RotateCubeを言うスクリプトを作成し、以下のコードを記入していきましょう。

using UnityEngine;
using System.Collections;

public class RotateCube : MonoBehaviour {

    void Update () {
         transform.Rotate(new Vector3(0, 0, 5));
    }
}

毎フレームごとに、Z軸を中心に5度ずつ回転させます。

スクリプトをCubeに追加して実行すれば、回転し続けるCubeを確認できます。

unity_06_02

 

田島悠介

オブジェクトへのスクリプトの追加方法は覚えているかな?

大石ゆかり

「Project」の「Assets」からスクリプトを作成して、「Hierarchy」か「Inspector」タブにドラッグ&ドロップでしたね。

田島悠介

その通り!エラーが出る場合はファイル名とクラス名の一致などをもう一度確認してみよう。

 

まとめ

今回は、Unityでの回転の基礎を学びました。

回転はプレイヤーや敵などを動かすのに使用するだけではなく、UIを華やかにしたり、ゲームに変化を与えることができます。

Unityでは回転の方法がいくつかあり混乱するかもしれません。

ですがゲーム作りを繰り返すうちに、最適な方法を選択できるようになります。

焦らずに、まずはtransform.Rotate()を使用して回転させてみましょう。

 

執筆してくれたメンター

mentor-s

専門学校卒業後、4年間ゲーム開発会社でプログラマーを担当。

現在は講師兼個人ゲーム開発者。

ゲーム開発ではプログラミングだけでなく、画像・音楽・モデリングなどすべて行う。

 

田島悠介

ゲームを再生すると、画面ではどうなったかな?

大石ゆかり

オブジェクトがその場でくるくる回転しましたね!

田島悠介

例えば「RigidBody」の「Use Gravity」と一緒に使うと、オブジェクトは回転しながら落下してくるよ。

他の物理属性と組み合わせたりして色々試してみよう。

大石ゆかり

なるほど、分かりました!

 

[お知らせ]TechAcademyではオリジナルゲームアプリが公開できるUnityオンラインブートキャンプを開催しています。現役Unityエンジニアのサポートで効率的に学びたい場合はご検討ください。