こうHTMLのTABLEタグみたいに、縦とか横とかにフィールドを並べるようにします。
インスペクタは基本的に縦並びなのですが、横並びにしてから縦並び、みたいなことをするためにそれぞれ用意されています。
フィールドを横に並べる
横に並べるには、対象を BeginHorizontalとEndHorizontalで囲みます。
普通においたら、縦に並んでいるものを、
EditorGUILayoutSample obj = target as EditorGUILayoutSample;
obj.name = EditorGUILayout.TextField ("name", obj.name);
obj.address = EditorGUILayout.TextField ("address", obj.address);
obj.intValue = EditorGUILayout.IntField ("intValue", obj.intValue);
obj.floatValue = EditorGUILayout.FloatField ("floatValue", obj.floatValue);
次のようにすると、横に並ぶようになります。
EditorGUILayoutSample obj = target as EditorGUILayoutSample;
EditorGUILayout.BeginHorizontal ();
obj.name = EditorGUILayout.TextField ("name", obj.name);
obj.address = EditorGUILayout.TextField ("address", obj.address);
EditorGUILayout.EndHorizontal ();
EditorGUILayout.BeginHorizontal ();
obj.intValue = EditorGUILayout.IntField ("intValue", obj.intValue);
obj.floatValue = EditorGUILayout.FloatField ("floatValue", obj.floatValue);
EditorGUILayout.EndHorizontal ();
BeginHorizontal~EndHorizontalで囲まれたフィールドが、横に並んでいます。
フィールドを縦に並べる
縦に並べるにはBeginVerticalを使用します。
が、インスペクタはデフォルトでフィールドは縦に並んでいくので、最初にBeginVertical~EndVerticalで囲んでも何もおこりません。
BeginHorizontalを使用した後に、この指定が効果を発揮します。
EditorGUILayoutSample obj = target as EditorGUILayoutSample;
EditorGUILayout.BeginHorizontal ();
EditorGUILayout.BeginVertical ();
obj.name = EditorGUILayout.TextField ("name", obj.name);
obj.address = EditorGUILayout.TextField ("address", obj.address);
EditorGUILayout.EndVertical ();
EditorGUILayout.BeginVertical ();
obj.intValue = EditorGUILayout.IntField ("intValue", obj.intValue);
obj.floatValue = EditorGUILayout.FloatField ("floatValue", obj.floatValue);
EditorGUILayout.EndVertical ();
EditorGUILayout.EndHorizontal ();
というふうに、BeginHorizontal~EndHorizontalで囲まれた中に、BeginVertical~EndVerticalをおいてやると、
囲まれたフィールドが縦に並び、それが横に並んでいる表示になります。
