Unityでは、従来、スクリプトを使ってGUIを作成するようなやり方でGUIを作成していまいた。この旧GUIは、スクリーン座標に配置されるため、シーンの3D世界(ワールド座標)に配置することができませんでした。またGUIは、
onGUIのイベント内で表示し、マウスの状態などを調べて操作するようなベタなやり方でした。
Unity 4.6の新GUIでは、スクリーン座標のみならず、
ワールド座標に配置することができます。またそれぞれのGUIにはイベントシステムが用意され、イベントごとに処理を割り付けるなどしてオブジェクト指向らしいプログラミングが行えます。
では、実際に新しいGUIを作成して、C#から使ってみることにしましょう。
(※Unity 4.6の新GUIの使い方については、 http://libro.tuyano.com/index3?id=3266003 を御覧ください)ここでは、
Canvas、
Panel、
Label、
InputField、
Buttonといったものを配置してみます。シーンを新たに用意し、
<GameObject>メニューの
<UI>から
<Canvas>を選んで
Canvasを追加してください。これがGUIのベースとなります。そしてインスペクターで、以下のように表示を整えておきます。
・Canvasの設定Render Mode――「World Space」に切り替える
Event Camera――「Main Camera」を選択
PosX, PosY, PosZ――すべてゼロ
Width――640
Height――480
Pivot――x: 0.5, y:0.5
(※他はデフォルトのまま)
●Main Cameraを調整するMain Cameraの表示を調整し、配置した
Canvasが表示されるようにしておきます。
Position――x:0, y:0, z:-500
Rotation――x:0, y:0, z:0
Scale――x:1, y:1, z:1
Field of View――60
●GUI部品を配置するGUI部品をCanvasの中に追加していきます。それぞれ以下のように追加し設定して下さい。なお位置や大きさなどは目安ですので適当に調整して構いません。
・PanelそのままCanvas内に追加するだけです。追加すると、Canvas全体にぴたりと嵌めこまれます。設定などは不要です。
・Textわかりやすいよう、名前を「
msgText」と変更しておきます。
PosX:0,
PosY:150,
PosZ:0
Width――600
Height――70
Font Size――36
・InputFieldPosX:0,
PosY:50,
PosZ:0
Width――300
Height――50
Font Size――24
・ButtonPosX:0,
PosY:-150,
PosZ:0
Width――300
Height――50
Font Size――24
フォント関係は、適当に設定してありますので、それぞれでフォントサイズやテキスト色などは自由に調整してかまいません。