ただ間に FlexibleSpace()
を挟むだけでは画面全体に対して右寄せにはできなくて手間取ったので、メモしておく
画面全体に対して右寄せにならなかった例
void OnGUI()
{
GUILayout.BeginHorizontal("box");
GUILayout.Label("Left");
GUILayout.FlexibleSpace();
GUILayout.Label("Right");
GUILayout.EndHorizontal();
}
void OnGUI()
{
GUILayout.BeginHorizontal("box");
{
GUILayout.Label("Left");
GUILayout.FlexibleSpace();
GUILayout.BeginVertical("box");
{
GUILayout.Label("Right 1");
GUILayout.Label("Right 2");
}
GUILayout.EndVertical();
}
GUILayout.EndHorizontal();
}
GUILayout.BeginArea を使う
GUILayout.BeginArea
を利用してスクリーンサイズのエリアを作ってやることで、FlexibleSpaceが画面端まで伸びてくれるようになった。
http://docs.unity3d.com/ScriptReference/GUILayout.BeginArea.html
void OnGUI()
{
GUILayout.BeginArea(new Rect(0, 0, Screen.width, Screen.height));
GUILayout.BeginHorizontal("box");
{
GUILayout.Label("Left");
GUILayout.FlexibleSpace();
GUILayout.BeginVertical("box");
{
GUILayout.Label("Right 1");
GUILayout.Label("Right 2");
}
GUILayout.EndVertical();
}
GUILayout.EndHorizontal();
GUILayout.EndArea();
}
デバッグ機能などをサクッと右上につけようと思った時などにどうぞ。
横幅のサイズがわかってれば、そのRectを適当にBeginVerticalとかに渡せばいいけど、面倒なことを意識せずに右によって欲しかったのでこうした。
もっと簡単でスマートな方法などありましたらご教授願いします