【Unity】オブジェクトの位置や角度を切り替える方法

unity

こんにちは、のっくんです。

今日はUnityのカメラの位置を切り替える方法についてご説明します。

Unityでゲームを作っている時に、

「カメラの位置や角度を切り替えたいなぁ〜」

って時ありますよね。

まずはカメラオブジェクトのための変数をスクリプトに宣言します。

public GameObject cam;

次にカメラオブジェクトをセットします。

Unityではドラッグ&ドロップでオブジェクトをセットすることができます。

カメラの位置と角度を切り替えるには以下のようにします。

cam.transform.position = new Vector3(2, 0, 5);
cam.transform.rotation = Quaternion.Euler(50, 0, 0);

位置情報と角度情報は(x座標,y座標,z座標)の順番で指定します。

上記の例だと、

  • x軸に2、y軸に0、z軸に5の位置にカメラを移動する。
  • x軸周りに50度、カメラを回転させる。

という意味になります。

今日の記事はここまでとなります。

それでは。

角度をベクターで指定する

インスペクタではベクターで角度が表現されるので以下のようにベクターで回転量を指定する方が分かりやすいです。

    bool isOpen = false;
    public void OpenDoorRight()
    {
        if (isOpen)
        {
            gameobj[0].transform.Rotate(new Vector3(0, 0, 120), Space.Self);
            isOpen = false;
        }
        else
        {
            gameobj[0].transform.Rotate(new Vector3(0, 0, -120), Space.Self);
            isOpen = true;
        }
    }

ドアが閉まっていたら開ける、開いていたら閉めるコードです。

座標系をSelfで指定するとローカル座標となります。

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog