Unityで3D脱出ゲーム

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

2020年12月18日

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

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

3D脱出ゲームの作り方

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

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

カメラの実装と回転をする方法

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

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

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

Udemyの場合は

セクション8

63.カメラの設置

64.カメラの回転

についての内容です。

スポンサーリンク

この動画で勉強すること

▶︎カメラの実装と回転をして視点の変更をする処理を作成する。

目標1

カメラ実装の準備をする。

=>カメラを管理するオブジェクトを作る。(CameraManager)

=>カメラの視点切り替えを行うためのC#スクリプトを作る。(CameraManagerスクリプト)

目標2

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

=>カメラのポジションをまとめるオブジェクトを作る。(CameraPositions)

=>カメラのポジションを設定するオブジェクトを作る(Position0〜3)

目標3

カメラのポジションを変更する処理を作る。

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

目標4

カメラを回転させるためのパネルを作って設定する。

=>Canvasを作成して子要素にPanelを作る。

=>Panelの大きさを調整する。

=>Panelを複製して、2つのパネルにButtonをつける。

目標5

カメラのポジションを設定する。

=>それぞれのカメラのポジション(視点)を設定する。

CameraManagerスクリプトのコード

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

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

public class CameraManager : MonoBehaviour
{
    // カメラの切り替え
    // どこにどのカメラを有効にするのか
    // どこに
    // ・mainの全体を回転するカメラ
    // ・ズームしたときのカメラ

    // 全体を回転するカメラのポジションを作成
    [SerializeField] Transform[] mainCameraTransforms = default;
    int currentMainPosition = default;

    private void Start()
    {
        currentMainPosition = 0;
        Camera.main.transform.position = mainCameraTransforms[currentMainPosition].position;
        Camera.main.transform.rotation = mainCameraTransforms[currentMainPosition].rotation;

    }

    public void TurnLeft()
    {
        currentMainPosition--;
        if(currentMainPosition < 0)
        {
            currentMainPosition = mainCameraTransforms.Length-1;
        }
        Camera.main.transform.position = mainCameraTransforms[currentMainPosition].position;
        Camera.main.transform.rotation = mainCameraTransforms[currentMainPosition].rotation;
    }

    public void TurnRight()
    {
        currentMainPosition++;
        if(currentMainPosition >= mainCameraTransforms.Length)
        {
            currentMainPosition = 0;
        }
        Camera.main.transform.position = mainCameraTransforms[currentMainPosition].position;
        Camera.main.transform.rotation = mainCameraTransforms[currentMainPosition].rotation;
    }
}

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

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

カメラの回転を行うには、
 まずカメラを管理するための
 オブジェクトを作成します。

次にカメラの位置を決めるための
 ポジションを作成し、

 そのポジションを変更するための
 コードを書くC#スクリプトを作成します。

そのC#スクリプトにカメラの
 ポジションを変更するための
 コードを書きます。

そしてカメラを回転させるための
 パネルを作り、視点を切り替えたい
 場所にカメラのポジションを設定します。

今回の内容を実践してPlayボタンで
実行すると、

カメラの視点を切り替えられるようになります。

カメラの回転0の画像
カメラの回転1の画像
カメラの回転2の画像
カメラの回転3の画像

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

スポンサーリンク

-Unityで3D脱出ゲーム