Написал комбобокс для uGUI. Легко настраивается. Очень приятен в обращении.
У этого выпадающего списка есть невидимый оверлей, закрывающий список при клике за его пределами. Обновление любого свойства, что у самого списка, что у его элементов, моментально вносит изменения. В выпадающем списке всегда отображается выбранный элемент (даже если он выбран программно), и смещение отображения элементов всегда корректно.
ComboBox - свойства и методы:
Action<int> OnSelectionChanged
Вызывается при выборе нового элемента
Action<int> OnItemSelected
Вызывается при выборе элемента
bool Interactable
Включает или выключает доступ к комбобоксу
int ItemsToDisplay
Задаёт число элементов, отображаемых в выпадающем списке
bool HideFirstItem
Прячет первый элемент; используется для плейсхолдера
int SelectedIndex
Меняет выбранный элемент
ComboBoxItem[] Items
Обновляет комбобокс новыми элементами
void OnItemClicked(int index)
Имитирует нажатие на элемент
void SelectItem(int index)
Выбирает элемент
void AddItems(params object[] list)
Добавляет новые элементы типов ComboBoxItem, string и Sprite
void ClearItems()
Удаляет все элементы
void UpdateGraphics()
Обновляет комбобокс по заданным корневому элементу размерам; рекомендуется вызывать при программном изменении размеров комбобокса (как в демо)
ComboBoxItem- свойства и конструкторы:
string Caption
Текст для отображения элемента
Sprite Image
Изображение для отображения элемента
bool IsDisabled
Включает или выключает доступ к элементу
Action OnSelect
Вызывается при выборе элемента
ComboBoxItem(string caption)
ComboBoxItem(Sprite image)
ComboBoxItem(string caption, bool disabled)
ComboBoxItem(Sprite image, bool disabled)
ComboBoxItem(string caption, Sprite image, bool disabled)
ComboBoxItem(string caption, Sprite image, bool disabled, Action onSelect)
ComboBoxItem(string caption, Sprite image, Action onSelect)
ComboBoxItem(string caption, Action onSelect)
ComboBoxItem(Sprite image, Action onSelect)