Unityで3D脱出ゲーム

Unity 3D脱出ゲームの作り方その24:カメラの回転をする方法

Unityで作る3D脱出ゲームの作り方を紹介している記事その24です。

僕が所属しているオンラインサロンの
先生である嶋津さんが作成された動画を
見ながら勉強した内容について、

3D脱出ゲームの作り方

としてまとめている記事になります。

その24となるこの記事では、

カメラの回転をする方法

についてお伝えしています。

参考となる動画はこちらです。

【Unity3D】脱出ゲームの作り方 # 24カメラの回転

スポンサーリンク

この動画で勉強すること

▶︎カメラの回転ボタンを押すと視点が切り替わる方法を学ぶ。

目標1

カメラを回転させる処理を作る。

=>C#スクリプトを作る。(CameraManager)

=>Hierarchyに空のオブジェクトを作る。(CameraManager)

=>CameraManagerにスクリプトをつける。

=>CameraManagerスクリプトにコードを書く。

目標2

カメラを切り替えるUIのPanelを作成する。

=>HierarchyにCanvasを作成する。

=>Canvasの中にPanelを作成する。

=>Panelの大きさを調整して、LeftPanelに名前を変更する。

=>LeftPanelにButtonをつける。

=>LeftPanelを複製してRightPanelに名前を変更する。

=>RightPanelを複製してBackPanelに名前を変更する。

=>LeftPanelとRightPanelのButton設定をする。

目標3

カメラのポジションを作成する。

=>空のオブジェクトを作成する。(CameraPositions)

=>CameraPositionsの中にSphereを作る。

=>Sphereの位置を調整してカメラのポジションを作る。

=>Sphereを複製して位置を調整し、別のカメラポジションを3つ作成する。

=>全てのSphereのコライダーを消す。

=>Sphereの子要素にCameraを作成する。

=>Cameraを確認しつつSphereの角度を調整して視点を決める。

=>次のSphereにCameraを移動して視点を決める。

=>同じようにして全てのSphereで視点を決める。

目標4

カメラポジションのエラーを修正する。

=>CameraManageスクリプトのコードを修正する。

CameraManagerスクリプトのコード

カメラの回転を行うために作成した
CameraManagerスクリプトの
コードは以下となります。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraManager : MonoBehaviour
{
    // やりたいこと
    //・カメラの回転:特定の位置に移動する

    [SerializeField] Transform[] cameraPositions = default; // カメラのポジションを設定する
    int currentIndex = 0;

    void Start()
    {
        currentIndex = 0;
        SetCameraPosition(currentIndex);
    }

    //右にカメラの視点を回転させる
    public void TurnRight()
    {
        currentIndex++;
        if(currentIndex >= cameraPositions.Length)
        {
            currentIndex = 0;
        }
        SetCameraPosition(currentIndex);
    }

    //左にカメラの視点を回転させる
    public void TurnLeft()
    {
        currentIndex--;
        if (currentIndex < 0)
        {
            currentIndex = cameraPositions.Length -1;
        }
        SetCameraPosition(currentIndex);
    }

    //カメラのポジションを変更する関数
    void SetCameraPosition(int index)
    {
        Camera.main.transform.position = cameraPositions[index].position;
        Camera.main.transform.rotation = cameraPositions[index].rotation;
    }
}

カメラの回転で勉強したことのまとめ

3D脱出ゲームの作り方その24
「カメラの回転」で勉強した
内容についてのまとめです。

カメラの回転を行うには、
 まずカメラの視点を変更する
 処理をC#スクリプトに書きます。

そして、カメラを回転させる
 パネルのUIを作成します。

次にカメラのポジション(視点)を
 4つ作成して見える範囲を設定します。

そして最後にカメラのポジションを
 変更する際のエラーを修正して完了です。

以上の作業を行なった後に
カメラを回転させるUIのPanelを
クリックすると、視点が順番に
切り替わるようになります。

カメラの視点1
カメラの視点2
カメラの視点3
カメラの視点4

「カメラの回転」の目標は以上で達成です!

スポンサーリンク

-Unityで3D脱出ゲーム