Three.jsを使って、作ってみた

プログラミング関連の事を色々書いています(^^) 週末はレストランやコンビニのお菓子のことを書いています。

Unity OnGUIを使い、ボタンとかを作る

今回は、Unityの「OnGUI」について書きます。


「OnGUI」を使うと、「ボタン」,「スライダー」,「テキスト」などのGUIが作れます。

UnityのGUIはOnGUI()の中に書くのが基本となります。
なので、Scriptにこのような関数(Javascriptの場合)を作ります。

function OnGUI(){
	//内容
}

OnGUIは毎フレーム描画されている感じです。


それでは、「テキスト」を表示させる方法を書きます。

テキストを表示させるには、こんな感じにScriptに書きます。
Javascript

#pragma strict

var style : GUIStyle;

function OnGUI(){
	GUI.Label(Rect(10 ,10 ,200, 50), "Hello" ,style);
       //Rect(x座標, y座標, 幅, 高さ)
}

テキスト表示には、「GUI.Label」を使います。
GUI.Label」に、Rectで文字列の座標を指定して表示させます。

Rectクラスは(x座標, y座標, 幅, 高さ)で定義される座標系です。

Rectの隣の引数には、表示させたい文字を入れます。上のコードでは、「Hello」と表示されます。

最後の引数は、GUIStyleを入れます。※GUIStyleは、なくても大丈夫です。
GUIStyleを使用すると、文字の色やサイズ等を変更できます。
Javascript

var style : GUIStyle;
style.fontSize = 50;//文字サイズ
style.normal.textColor = Color.red;//文字色

function OnGUI(){
	GUI.Label(Rect(10 ,10 ,200, 50), "Hello" ,style);
}

f:id:gupuru:20140503191509p:plain
このようにすると、文字サイズが「50」で赤色になります。



次に、ボタンについて書きます。

ボタンをを表示させるには、こんな感じで、Scriptに書きます。
Javascript

#pragma strict

function OnGUI(){

	if( GUI.Button( Rect(100, 100, 100, 20), "ボタン") ){
     /Rect(x座標, y座標, 幅, 高さ)
		Debug.Log("ボタンが押された");
	}

}

f:id:gupuru:20140503191917p:plain
GUI.Button」を使うと、ボタンを表示できます。

基本的な所は上のテキストのやつと変わりません。
上のコードは、ボタンが押されると、コンソールに「ボタンが押された」を表示させます。



最後に、スライダーについて書きます。

スライダーをを表示させるには、こんな感じで、Scriptに書きます。
Javascript

#pragma strict

var num:int = 0;

function OnGUI(){

	num = GUI.HorizontalSlider(Rect(100, 200, 100, 20), num, 0, 10);
	Debug.Log(num.ToString());
	GUI.Label( Rect(220, 200, 100, 20), num.ToString() );

}

f:id:gupuru:20140503192321p:plain

スライダーは、GUI.HorizontalSlider」を使うと、表示できます。

第2引数のnum の部分は、保存していた値を渡してあげています。

第3引数、第4引数の「0」 と「10」の部分が、スライダーの左右の値を決めています。
今回は0と10なので、0~10の範囲でスライダーの値が変更できます。

「num.ToString()」は、「num」の値を文字列に変換しています。変換した値は、コンソールに表示させます。



コレ以外にも、UnityのGUIは、他にもたくさんあります。
こちら↓↓に詳しくは書かれているので、一度見といて損はないです。
Unity - Unity Manual


これで、終わります。


参考サイト
GUI:unityで3Dゲーム開発
Unity - Unity Manual
OnGUI関数でGUI(ボタンとかスライダーとか)を作る: Unity3Dのゲームの作り方講座