в настоящее время я храню этот список с помощью 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