Unity のシーンを作成すると、最初はカメラが一つだけ含まれていて、ほとんどの場合、それだけで十分です。ですが、シーン内に好きなだけカメラを持つこともできます。それらカメラのビューは下記で説明するように、さまざまな方法で組み合わせることができます。
デフォルトでは、一つのカメラレンダーで画面全体をカバーします。つまり、一度に見えるカメラビューは一つだけです(見えているカメラが depth プロパティーの一番高い値を持っています)。スクリプトでカメラをオフにして他のカメラをオンにすることで、カメラから別のカメラへシーンビューの“カット”ができます。例えば、全体マップビューとファーストパーソンビューを切り替えるのに使います。
using UnityEngine;
using System.Collections;
public class ExampleScript : MonoBehaviour {
public Camera firstPersonCamera;
public Camera overheadCamera;
public void ShowOverheadView() {
firstPersonCamera.enabled = false;
overheadCamera.enabled = true;
}
public void ShowFirstPersonView() {
firstPersonCamera.enabled = true;
overheadCamera.enabled = false;
}
}
C# の例
var firstPersonCamera: Camera;
var overheadCamera: Camera;
function ShowOverheadView() {
firstPersonCamera.enabled = false;
overheadCamera.enabled = true;
}
function ShowFirstPersonView() {
firstPersonCamera.enabled = true;
overheadCamera.enabled = false;
}
Javascript の例
通常(デフォルトセッティングでは)、少なくとも一つのカメラビューが画面全体をカバーしますが、画面内の一部のエリアで別のビューを表示するのも便利です。例えば、ドライビングゲーム内でバックミラーを表示する場合、ファーストパーソンビューの画面の隅に全体マップを表示する場合などです。Viewport Rect プロパティーを使用してコンピューター画面上のカメラサイズを設定することができます。
ビューポートの座標は画面に対して“正規化”されます。左下の角が0.0座標、右上の角が1.0座標になります。0.5の値がその中間の座標です。ビューポートサイズに加えて、子画面用カメラの depth プロパティー値は、背景のカメラよりも高く設定すべきです。正確な値は重要ではありませんが、より高い depth 値を持つカメラは、低い depth 値のカメラの上にレンダリングされます。