Всё хорошо, одно плохо - невозможно толком расчитать высоту необходимого инспектора. Из-за этого наш собственный драйвер, рисует интерфейс поверх нижних (от него) элементов инспектора.
Точнее, рассчитать то возможно, но встроенного метода для этого нет.
Исправляем этот недочёт так :
Синтаксис:
Используется csharp
internal static class EditorExtensions
{
internal static float CalculatePropertyHeight(Rect position, SerializedProperty prop)
{
float h = position.height + 2f;
SerializedProperty serializedProperty = prop.Copy();
SerializedProperty endProperty = serializedProperty.GetEndProperty();
while (serializedProperty.NextVisible(serializedProperty.isExpanded) &&
!SerializedProperty.EqualContents(serializedProperty, endProperty))
{
h += EditorGUI.GetPropertyHeight(serializedProperty, (GUIContent)null, false) + 2f;
}
return h;
}
}
{
internal static float CalculatePropertyHeight(Rect position, SerializedProperty prop)
{
float h = position.height + 2f;
SerializedProperty serializedProperty = prop.Copy();
SerializedProperty endProperty = serializedProperty.GetEndProperty();
while (serializedProperty.NextVisible(serializedProperty.isExpanded) &&
!SerializedProperty.EqualContents(serializedProperty, endProperty))
{
h += EditorGUI.GetPropertyHeight(serializedProperty, (GUIContent)null, false) + 2f;
}
return h;
}
}
В результате, к примеру, получаем возможность прорисовать вот такой вот боксик вокруг, сложной для восприятия, переменной :