WisdomSoft - for your serial experiences.

ゲーム画面とワールド

デバイス(ゲーム機)に表示されるゲーム画面は、ゲーム世界に配置されているカメラによって映し出された結果です。カメラはコンポーネントの一種で、スクリプトと同様にあらゆるゲームオブジェクトに設定できます。少なくとも、シーン内に 1 以上のカメラが存在しなければオブジェクトが画面に描画されることはありません。

オブジェクトにカメラを登録する

Unity エディタでは、ゲーム世界を操作する「Scene」ウィンドウと、実際にプレイヤーがゲームを実行したときの画面となる「Game」ウィンドウが表示されています。開発時には「Scene」ウィンドウ上でゲーム世界を編集し、オブジェクトの配置や選択を行いながら、同時に「Game」ウィンドウでゲーム画面をプレビューできます。

この関係は、実際の映画撮影と同じような考え方です。「Scene」ウィンドウで編集するゲームシーンは舞台全体であり、「Game」ウィンドウに表示されるのはカメラを通して撮影された映像ということになります。部隊の役者を動かしても、カメラを動かしても、映像は動きます。そして、それらを動かす台本がスクリプトとなります。

カメラは UnityEngine.Camera クラスによって表されます。このクラスは、Component クラスから派生するコンポーネントの一種であり、ゲーム画面としてスクリーンに表示される領域は Camera コンポーネントの設定によって決まります。

UnityEngine.Camera クラス
UnityEngine.Object
    UnityEngine.Component
        UnityEngine.Behaviour
            UnityEngine.Camera
public sealed class Camera : Behaviour

当然、シーン内にカメラが存在しない場合、ゲームを実行しても何も画面は表示されません。カメラは、他のコンポーネントと同様にスクリプトから制御することもでき、実行時にオブジェクトに AddComponent() メソッドで追加することも可能です。

コード1
using UnityEngine;

namespace SampleName
{
	public sealed class Sample : MonoBehaviour 
	{
		void Start () 
		{
			GameObject obj = new GameObject();
			obj.transform.Translate(0, 0, -5);
			obj.AddComponent(typeof(Camera));
		}
	}
}
実行結果
コード1 実行結果
コード1 実行結果

コード1は、新しくカメラ用の空のオブジェクトを生成し、これに Camera コンポーネントを追加するスクリプトです。原点に立方体のオブジェクトが配置されているだけのシーンで、これにコード1を設定すれば、ゲーム実行時にカメラが生成されることを確認できます。