Как заставить элементы ReorderableList правильно расширяться и изменять размер в инспекторе?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как заставить элементы ReorderableList правильно расширяться и изменять размер в инспекторе?

Сообщение Anonymous »

У меня есть список объектов, которые я отображаю в редакторе с помощью CustomPropertyDrawer
в настоящее время я храню этот список с помощью ReorderableList, для которого я переопределил drawElementCallback и onAddDropdownCallback соответствующий код выглядит следующим образом:

Код: Выделить всё

        reorderableList.drawElementCallback = (Rect rect, int index, bool isActive, bool isFocused) =>
{
GUIContent elementLabel = new GUIContent();
elementLabel.text = "element " + index;
Rect elementRect = new Rect(rect.x, rect.y, rect.width, EditorGUI.GetPropertyHeight(list.GetArrayElementAtIndex(index)));

EditorGUI.indentLevel++;
EditorGUI.PropertyField(elementRect, list.GetArrayElementAtIndex(index), elementLabel, true);
EditorGUI.indentLevel--;
};
Моя проблема заключается в следующем: элементы списка не расширяются должным образом, при расширении они занимают пространство, которое им не положено, как в этих примерах.
Первый элемент расширен
Последний элемент расширен
Темно-серое пространство под списком ДЕЙСТВИТЕЛЬНО расширяется, поэтому где-то свойство знает, что оно должно занимать больше места... но почему-то это пространство не используется элементами списка .
Мне нужны следующие элементы сдвинуть вниз, чтобы освободить место для расширенного списка, и увеличить размер светло-серого поля списка.
Потенциально важное примечание: элементы Все мои списки имеют общий класс, от которого они наследуются, но они не обязательно одного типа друг с другом, поэтому не все они будут иметь одинаковую высоту (как в моих двух изображениях, элементы имеют разные типы).
Я думаю, моя ошибка где-то в предоставленной функции... Я думал, что вызов GetPropertyHeight() для элементов вернет большую высоту, если элемент будет расширен, но, похоже, это не так, стоит ли мне вообще использовать здесь ReorderableList?Изменить: я попробовал использовать EditorGUILayout.PropertyField() вместо EditorGUI.PropertyField(), чтобы автоматически получить высоту элементов списка, я получаю этот результат, который ведет себя ближе к мои ожидания, хотя сам список теперь смещен вниз из светло-серой области...
Инспектор при использовании EditorGUILayout

Подробнее здесь: https://stackoverflow.com/questions/793 ... -inspector
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»