libro
www.tuyano.com
初心者のためのUnity超入門

Unity 4.6の新GUIを使おう (2/7)

作成:2014-08-25 08:32
更新:2014-08-25 08:32

■Rect TransformとRender Mode

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 ModeWorld Spaceに変更すると、下に「Event Camera」という項目が現れます。これは、イベント関係で利用するカメラを指定するものです。ワールド座標では、カメラから見た視点によって表示などが変わってくるため、「どのカメラを使うか」を指定しておきます。

Event Camera右側のマークをクリックし、「Main Camera」を選択しておきましょう。これでMain CameraEvent Cameraに設定されます。これは、GUIをプログラム内から利用する場合には必ず設定しておく必要があるので、CanvasRender Modeを変更したときにセットで設定しておきましょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※Render Modeでレンダーモードを切り替える。

※関連コンテンツ

「初心者のためのUnity超入門」に戻る