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

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

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

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

Unityでは、回転を簡単に使用できるように便利な機能がいくつも存在します。今回は回転させるためにどのような方法があるのか、そして実際に回転させる方法を解説していきたいと思います。

 

なお、本記事はTechAcademyのUnity入門オンライン講座の内容をもとにしています。

 

田島悠介

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

大石ゆかり

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

田島悠介

いくつかの方法があるけれど、ここではtransform.Rotate()を使った手順を実際にやってみよう。画面に立方体のオブジェクトを追加してそれに適用するよ。

大石ゆかり

はい!

 

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

1. transform.Rotate()

よく使用される方法で、オイラー角とも呼ばれています。

例えば、transform.Rotate(new Vector3(0,0,30))のように書くことができます。このコードだとZ軸を中心に30度の回転をします(向かって時計回りに30度)。この方法は直感的なフォーマットで制御できるので回転角がわかりやすいという利点があります。

 

2. rigidbody.angularVelocity = new Vector3()

こちらは、Rigidbodyを使用した回転方法です。

Rigidbodyを使用するオブジェクトを回転させたい場合、一つ目に挙げたRotate()を使用する方法だと、稀に 思わぬバグが発生する場合があります。その解消策としてこちらの方法を使用するのが良いです。

この関数はオブジェクトの回転速度そのものを変更します。そのため一度速度を与えると解錠するまでこの速度で回転し続けます。

 

3. Assetsを使用

Assetsを使用して回転させる方法です。よく使用されるのはitweenというAssetsです。

このAssetsは回転の他にも位置の変更や透明度の変更などを簡単に行う事ができるので気になる方は調べてみてください。 その他方法は他にも存在しますが、よく使用されるのはこの三つの内どれかであると言えます。

 

実際に回転させてみよう

今回は一番一般的な、「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」タブにドラッグ&ドロップでしたね。

田島悠介

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

 

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

まとめ

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

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

回転の方法が何個かあり混乱するかもしれませんが、何個もゲームを作っていく内に適切な方法を選べるようになるので、焦らず勉強していくようにしましょう。

 

田島悠介

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

大石ゆかり

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

田島悠介

例えば「RigidBody」の「Use Gravity」と一緒に使うと、オブジェクトは回転しながら落下してくるよ。他の物理属性と組み合わせたりして色々試してみよう。

大石ゆかり

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

 

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