Высота инспектора для PropertyDrawer

Раздел, посвящённый всему, что связано с программированием для Редактора Юнити. Скрипты Редактора, Wizards и прочее.

Высота инспектора для PropertyDrawer

Сообщение Neodrop 16 дек 2013, 16:06

Не так давно, в UnityEditor появилась очень удобная возможность писать собственную имплементацию типов переменных. Называется PropertyDrawer
Всё хорошо, одно плохо - невозможно толком расчитать высоту необходимого инспектора. Из-за этого наш собственный драйвер, рисует интерфейс поверх нижних (от него) элементов инспектора.
Точнее, рассчитать то возможно, но встроенного метода для этого нет.

Исправляем этот недочёт так :

Синтаксис:
Используется 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;
        }
    }
 




В результате, к примеру, получаем возможность прорисовать вот такой вот боксик вокруг, сложной для восприятия, переменной :
У вас нет доступа для просмотра вложений в этом сообщении.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Высота инспектора для PropertyDrawer

Сообщение gnoblin 16 дек 2013, 16:21

(3A4OT)
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: Высота инспектора для PropertyDrawer

Сообщение Unitmen 28 янв 2014, 14:23

Neodrop писал(а):В результате, к примеру, получаем возможность прорисовать вот такой вот боксик вокруг, сложной для восприятия, переменной :

Спасибо, забираю.
А нет ли примера отображения данных типа Array[][] через PropertyDrawer?
Аватара пользователя
Unitmen
UNIт
 
Сообщения: 122
Зарегистрирован: 10 авг 2013, 00:55


Вернуться в Editor

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2