こう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をおいてやると、
囲まれたフィールドが縦に並び、それが横に並んでいる表示になります。