複数のカメラを切り替えたり画面を分割したりする方法

ここでは複数のカメラを使って「画面を切り替える」「画面を分割する」といった方法について説明します。


※この記事で使用しているUnityのバージョン:Unity2019.1

カメラを切り替える方法

カメラの切り替えはスクリプトから行います。やり方としては切り替えたいカメラのコンポーネントを取得して、その有効・無効を切り替えるだけです。

例えばメインカメラとサブカメラを切り替えるためのメソッドは次のように書くことができます。

using UnityEngine;
using System.Collections;

public class TestScript : MonoBehaviour
{
  public Camera mainCamera;
  public Camera subCamera;

  public void MainCameraView()
  {
    mainCamera.enabled = true;
    subCamera.enabled = false;
  }

  public void SubCameraView()
  {
    mainCamera.enabled = false;
    subCamera.enabled = true;
  }
}

このスクリプトではMainCameraViewを呼び出せばメインカメラの映像に、SubCameraViewを呼び出せばサブカメラの映像に切り替わるようにしてあります。

画面を分割する方法

複数のカメラを使って画面を分割するには、カメラの「ビューポート領域(Viewport Rect)」を調整します。2つのカメラを使ってビューポート領域を変更した例として、次の2つのパターンを試してみました。

例1:画面を上下に分割

画面を上下に分割した場合の例

メインカメラの映像を画面上側、サブカメラの映像を画面下側に表示した例です。

カメラ ビューポート領域の設定
X Y W H
メインカメラ 0 0.5 1 0.5
サブカメラ 0 0 1 0.5

例2:左下に小さい画面を表示

左下に小さな画面を表示した例

メインカメラの画面の左下にサブカメラの映像を映した例です。

カメラ ビューポート領域の設定
X Y W H
メインカメラ 0 0 1 1
サブカメラ 0.05 0.05 0.4 0.4

このとき、サブカメラの「深度」がメインカメラよりも大きくなるようにしてください。そうしないとサブカメラの映像が画面に映りません。