Canvasを選択すると、インスペクターには「
Rect Transform」という位置や大きさなどを設定する項目が表示されます。ここには以下のような項目が表示されます。
PosX, PosY, PosZ――位置を示します。
Width, Height――横幅、高さを示します。
Anchors――アンカーの最小値と最大値を設定します。
Pivot――部品の中心地点を割合(0~1の実数)で指定します。
Rotation――部品の向きを示します。
Scale――部品の大きさを示します。
だいたい、ゲームオブジェクトにある
Transformと似ていますね。けれど、決定的な違いが一つあります。それは、「デフォルトでは、これらの項目はすべて編集できない」という点です。
■Render Modeについて
なぜ、編集できないのか? それは、デフォルトで
レンダーモードが「
Screen Space」に設定されているからです。
新UIでは、GUIをゲームシーンと同じワールド座標に配置するか、それともスクリーンの座標に配置するかを指定できます。スクリーン座標上に配置する、ということは、つまりシーンの3次元グラフィックとは関係なく、(従来からある
GUITextのように)表示されるということです。これに対し、ワールド座標に配置すると、シーンの3次元空間内に配置するわけですから、シーンにあるゲームオブジェクトなどと同じ一つのパーツとしてシーンの中に置かれます。
この設定を行うのが、インスペクターの「
Canvas」内にある「
Render Mode」です。これには以下の3つの項目が用意されています。
Screen Space Overlay――オーバーレイモードでスクリーン上に配置します。
Screen Space Camera――特定のカメラに表示します。
World Space――ワールド座標に配置します。
この
Render Modeを「
World Space」に変更すると、
Rect Transformの項目が設定可能になります。スクリーン座標に配置した場合は、ワールド座標の配置とは関係なくスクリーン上に表示されますから、
Rect Transformの位置や大きさの設定は必要ないのですね。――では、さっそく
Render Modeを「
World Space」に変更しておきましょう。
●Event CameraについてRender Modeを
World Spaceに変更すると、下に「
Event Camera」という項目が現れます。これは、イベント関係で利用するカメラを指定するものです。ワールド座標では、カメラから見た視点によって表示などが変わってくるため、「どのカメラを使うか」を指定しておきます。
Event Camera右側の
◎マークをクリックし、「
Main Camera」を選択しておきましょう。これで
Main Cameraが
Event Cameraに設定されます。これは、GUIをプログラム内から利用する場合には必ず設定しておく必要があるので、
Canvasの
Render Modeを変更したときにセットで設定しておきましょう。