2017-02-12 1 views
0

Ich habe zwei ganzzahlige Eigenschaften und möchte sie in einer Zeile anzeigen.Anzeigen von Eigenschaften in einer horizontalen, angenehmen Weise

[CustomEditor(typeof(MazeConfiguration))] 
public class MazeConfigurationEditor : Editor 
{ 
    MazeConfiguration myTarget; 

    public void OnEnable() 
    { 
     myTarget = (MazeConfiguration)target; 
    } 

    public override void OnInspectorGUI() 
    { 

     EditorGUILayout.BeginHorizontal(); 
     myTarget.Width = EditorGUILayout.IntField("Width", myTarget.Width); 
     myTarget.Length = EditorGUILayout.IntField("Length", myTarget.Length); 
     EditorGUILayout.EndHorizontal(); 
    } 
} 

Aber es sieht sehr weit aus. enter image description here

Und wenn ich Breite des Inspektors ändern sieht es so enter image description here

Also habe ich die großen Räume zwischen Etikett und Eingabefeld entfernen möchte, und etwas Platz zwischen den Eigenschaften hinzuzufügen.

ich hörte, dass Eigentum Drawer mir so versuchte helfen kann ich es

public class MyIntAttribute : PropertyAttribute { } 

    [CustomPropertyDrawer(typeof(MyIntAttribute))] 
    public class MyIntDrawer : PropertyDrawer 
    { 
     public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) 
     { 
      EditorGUI.BeginProperty(position, label, property); 

      // position = EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), label); 

      var rect = new Rect(position.x/2f, position.y, position.width/2f, position.height); 

      EditorGUI.PropertyField(rect, property); 

      EditorGUI.EndProperty(); 
     } 
    } 

Aber es ist nicht ein Eingabefeld näher an ein entsprechendes Etikett zu bewegen, habe ich nur Breite eines Eingabefeld ändern.

Wie entferne ich Leerzeichen zwischen Label und Eingabefeld und füge Platz zwischen verschiedenen Eigenschaften hinzu?

Antwort

0

alles, was ich brauchte

EditorGUIUtility.labelWidth 
ändern
Verwandte Themen