GUIパーツの使い方
1. メニューから GameObject -> Create Empty で空のゲームオブジェクトを作成。
2. ProjectビューのScriptディレクトリで右クリック。生成されたファイルを NewBehaviourScript→GUIScript とリネーム。
3. そのファイルを開き以下の内容に変更。
var mainmenuSkin : GUISkin; function OnGUI () { GUI.skin = mainmenuSkin; GUILayout.BeginArea (Rect (10, 100, 500, 500)); if(GUILayout.Button ("Exit Game")) { Debug.Log ("Exit"); Application.Quit (); } GUILayout.EndArea (); }
4. そのファイルをHierarchyビューのGameObjectにドラッグ。
これで押すとアプリケーションを終了するサンプルが完成します。ビルドして試して見ましょう。
解説
var mainmenuSkin : GUISkin;
で GUISkin を定義し、
GUI.skin = mainmenuSkin;
割り当てる。
GUILayout.BeginArea (Rect (10, 100, 500, 500)); … GUILayout.EndArea ();
この範囲で定義されたものは BeginArea の引数で指定した位置とサイズの領域に描画されます。
Rectの引数はこちら
Rect(x座標, y座標, 幅, 高さ);
この領域のサイズが十分に無い場合はGUIの描画が欠けたり、文字列が切れたりします。必要十分なサイズを指定する様にしましょう。
主なGUIパーツの使い方
プログラム
var mainmenuSkin : GUISkin; var stringToEdit = "Hello World"; var stringToEdit2 = "Hello World2"; var slidervalue : int = 0; function OnGUI () { GUI.skin = mainmenuSkin; GUILayout.BeginArea (Rect (10,100,500,500)); GUILayout.Label ("Label"); if(GUILayout.Button ("Button")) { Debug.Log("Push!!"); } stringToEdit = GUILayout.TextField (stringToEdit, 25); stringToEdit2 = GUILayout.TextArea (stringToEdit2, 100); slidervalue = GUILayout.HorizontalSlider(slidervalue, 0, 10); if(GUILayout.Button ("slidervalue")) { Debug.Log("slidervalue "+slidervalue); } GUILayout.EndArea (); }
参考サイト
サンプル
Unity - GUI Scripting Guide
http://unity3d.com/support/documentation/Components/GUI%20Scripting%20Guide.html
Game Interfaces in Unity Part 1 [ User Interfaces in Unity ] in User Interfaces at Unity Labs Tutorials
http://www.unitylabs.net/tutorials/user-interfaces/unity-game-interfaces
リファレンス
Unity Script Reference – GUI
http://unity3d.com/support/documentation/ScriptReference/GUI.html