[Unity]カメラを縦または横に2分割して表示する

unity_camera_split3

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

カメラを2つ設定する

Unityでアプリを作成しているとカメラを分割したいことがあるはず。
キャラクターを中心に前と後ろを表示したり、複数の視点を同時に表示したりと用途は多いです。そこで今回はカメラを縦または横に2分割して表示する方法をご紹介します。

 

カメラの分割方法

空のオブジェクトの下に分割したいカメラオブジェクト「MainCamera」と「SubCamera」を追加します。親となる空オブジェクトには「CameraController.cs」を追加して、カメラの分割設定「mode」と表示するカメラ「MainCamera」と「SubCamera」を設定します。
unity_camera_split1

 

「MainCamera」はキャラクターの正面から、「SubCamera」はキャラクターの横から映しています。
unity_camera_split2

 

サンプルプログラム

各カメラを設定する「CameraController.cs」のプログラムです。

using UnityEngine;
using System.Collections;

public class CameraController : MonoBehaviour {

	// カメラの分割方法
	public enum SplitCameraMode {
		horizontal,
		vertical
	};

	public SplitCameraMode mode;	// カメラの分割方法

	// 分割するそれぞれのカメラ
	public Camera MainCamera;
	public Camera SubCamera;

	// Use this for initialization
	void Start () {
		// 横分割
		if (mode == SplitCameraMode.horizontal) {
			// カメラのViewPortRectの変更
			MainCamera.rect = new Rect (0f, 0f, 0.5f, 1f);
			SubCamera.rect = new Rect (0.5f, 0f, 0.5f, 1f);

		// 縦分割
		} else if (mode == SplitCameraMode.vertical) {
			// カメラのViewPortRectの変更
			MainCamera.rect = new Rect (0f, 0.5f, 1f, 0.5f);
			SubCamera.rect = new Rect (0f, 0f, 1f, 0.5f);
		}
	}
}

 

サンプルプログラムの出力結果

カメラを縦に分割、横に並べたときの出力結果
unity_camera_split3

 

カメラを横に分割、縦に並べたときの出力結果
unity_camera_split4