内部パラメータを画面上に表示することができればデバッグ効率が上がりますよね?
そんな時はGUI.Label
を使いましょうという回でございます。
ラベルを表示するには?
ラベルを表示するには GUI.Label
を使います。
GUI.Label
はOnGUI()
の中で呼び出さないといけません。
private void OnGUI() { GUI.Label(Rect, string, GUIStyle); // GUIStyleは省略可 }
Rect
Rect
は表示する領域です。
Rect(X座標, Y座標, 幅、 高さ)
文字数が多くなり、幅を超えてしまうと自動で折り返しされます。
※ 折り返しも含めた高さがないと見切れます。
見切れるのが嫌ならScreen
クラスを使えばいいと思います。
Screen
なら画面サイズを取得できるので画面いっぱいの領域を簡単に作れます。
new Rect(0, 0, Screen.width, Screen.height)
string
string
は文字列を指定します。
StringBuilderで複数行表示
複数行表示するやり方としてはGUI.Label
を2つ並べる方法があります。
GUI.Label(Rect, "あいうえお"); GUI.Label(Rect, "かきくけこ");
上記の実装だとRectのY座標を計算しないといけないので、少し手間です。
StringBuilder
クラスを使うと簡単に複数行表示ができます。
実装例) int hp = 255; int level = 99; int rank = 33; builder.AppendLine($"HP={hp}"); builder.AppendLine($"Level={level}"); builder.AppendLine($"Rank={rank}"); GUI.Label(new Rect(10, 10, Screen.width - 20, Screen.height - 20), builder.ToString());
スタイルが全部同じになるので色分けしたいなら使えません。
ラベルのスタイルを変更
GUIStyle
クラスを使うとスタイルを変更できます。
GUIStyle style = new GUIStyle(); GUI.Label(new Rect(x, y, w, h), "好きな文字列", style);
このstyle
クラスのパラメータでスタイルの変更ができます。
ラベルのフォントサイズを変える
style.fontSize = 16;
fontSizeは0がデフォルト値ですが、0の時はfontSize=13と同じサイズでした。
ラベルの色を変える
normal.textColor
で色を指定することができます。
style.normal.textColor = Color.red;