ゲーム画面とワールド
オブジェクトにカメラを登録する
Unity エディタでは、ゲーム世界を操作する「Scene」ウィンドウと、実際にプレイヤーがゲームを実行したときの画面となる「Game」ウィンドウが表示されています。開発時には「Scene」ウィンドウ上でゲーム世界を編集し、オブジェクトの配置や選択を行いながら、同時に「Game」ウィンドウでゲーム画面をプレビューできます。
この関係は、実際の映画撮影と同じような考え方です。「Scene」ウィンドウで編集するゲームシーンは舞台全体であり、「Game」ウィンドウに表示されるのはカメラを通して撮影された映像ということになります。部隊の役者を動かしても、カメラを動かしても、映像は動きます。そして、それらを動かす台本がスクリプトとなります。
カメラは UnityEngine.Camera クラスによって表されます。このクラスは、Component クラスから派生するコンポーネントの一種であり、ゲーム画面としてスクリーンに表示される領域は Camera コンポーネントの設定によって決まります。
UnityEngine.Object UnityEngine.Component UnityEngine.Behaviour UnityEngine.Camera
public sealed class Camera : Behaviour
当然、シーン内にカメラが存在しない場合、ゲームを実行しても何も画面は表示されません。カメラは、他のコンポーネントと同様にスクリプトから制御することもでき、実行時にオブジェクトに AddComponent() メソッドで追加することも可能です。
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は、新しくカメラ用の空のオブジェクトを生成し、これに Camera コンポーネントを追加するスクリプトです。原点に立方体のオブジェクトが配置されているだけのシーンで、これにコード1を設定すれば、ゲーム実行時にカメラが生成されることを確認できます。