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();
}
}
Und wenn ich Breite des Inspektors ändern sieht es so
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?