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); }
このようにすると、文字サイズが「50」で赤色になります。
次に、ボタンについて書きます。
ボタンをを表示させるには、こんな感じで、Scriptに書きます。
・Javascript
#pragma strict function OnGUI(){ if( GUI.Button( Rect(100, 100, 100, 20), "ボタン") ){ /Rect(x座標, y座標, 幅, 高さ) Debug.Log("ボタンが押された"); } }
「 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() ); }
スライダーは、「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のゲームの作り方講座