▶
【Unity】3Dアクションゲームを作ろう!#7 ステージの作成(Skybox・落下判定)
▶
【Unity】3Dアクションゲームを作ろう!#8 ステージの作成(スイッチ・扉)
▶
【Unity】3Dアクションゲームを作ろう!#9 プレイヤーのHP管理
▶
【初心者Unity】JsonUtilityクラスでJSONを扱う方法
▶
【初心者Unity】スクリプトからコンポーネントを追加する方法
1.はじめに
本記事では、複数のカメラの取り扱い方法について、基本的な内容を解説していきます。
- 複数のカメラ(視点)を同時に表示する方法
- 他のカメラ(視点)に切り替える方法
目標:
2.複数のカメラ(視点)を同時に表示
まずは2台目のカメラ(Sub Camera)を作成しましょう。
今回は分かりやすくするために、Main Cameraと対になる位置に設置します。
(オブジェクトの前後関係を見えやすくするため、本来の位置・角度から少し変更しています。)

今回の設定のキモとなるのは、CameraコンポーネントのViewport Rectという項目です。
以下のように設定していきます。
Main Camera
Sub Camera
以上で設定は完了です。
Gameビューを見てみると画面が分割されていることが確認できます。
Viewport Rectの設定値について簡単に解説します。
Viewport Rectには、X Y W H の4つのパラメータがありますが、
X Y は カメラの左下の座標(基準点)
W H は 基準点を始点としたカメラの表示範囲
をそれぞれ表しています。

3.他のカメラ(視点)に切り替える
※2.で行ったViewport Rectの設定は元に戻してください。
視点を切り替える方法はいくつかありますが、「使用しないカメラを無効にする」という方法が最も単純で実装しやすく、おすすめのやり方です。
シーン内の任意のオブジェクトに以下のスクリプトを設定します。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraManager : MonoBehaviour
{
public GameObject mainCamera;
public GameObject subCamera;
void Start()
{
// 各カメラオブジェクトを取得
mainCamera = GameObject.Find("Main Camera");
subCamera = GameObject.Find("Sub Camera");
// サブカメラはデフォルトで無効にしておく
subCamera.SetActive(false);
}
void Update()
{
// もしSpaceキーが押されたならば、
if (Input.GetKeyDown(KeyCode.Space))
{
// 各カメラオブジェクトの有効フラグを逆転(true→false,false→true)させる
mainCamera.SetActive(!mainCamera.activeSelf);
subCamera.SetActive(!subCamera.activeSelf);
}
}
}
以上で設定は完了です。
ゲームを開始するとSpaceキーでカメラが切り替わるのが確認できます。



