強火で進め

このブログではプログラム関連の記事を中心に書いてます。

Unityの主なGUIパーツの使い方

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 ();
}
実行結果


デフォルトで「Hello World2」と記述されてある TextArea の中で、enterを押すと縦の幅が拡張されていく様です。
「slidervalue」のボタンをクリックすると現在のスライダーの値がコンソールに表示されます。
※コンソールの表示はメニューから Window -> Console またはショートカット ↑+Cmd+C 。

参考サイト

サンプル

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