uGUI ComboBox (Unity 4.6.1f1)

Лучший способ помочь другим, поделиться своими находками.

uGUI ComboBox (Unity 4.6.1f1)

Сообщение Ert Donuell 09 янв 2015, 06:11

Написал комбобокс для 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)
У вас нет доступа для просмотра вложений в этом сообщении.
Последний раз редактировалось Ert Donuell 16 фев 2015, 16:38, всего редактировалось 6 раз(а).
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: uGUI ComboBox (Unity 4.6.1f1)

Сообщение Ert Donuell 09 янв 2015, 17:38

Исправлен баг с полосой прокрутки при числе элементов меньше отображаемого.
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: uGUI ComboBox (Unity 4.6.1f1)

Сообщение Ert Donuell 14 янв 2015, 04:48

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

Кстати, если кому интересно, сейчас я работаю над календарём. Почти закончил. Следом дополнительно реализую DatePicker.
Скрытый текст:
ИзображениеИзображениеИзображение
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: uGUI ComboBox (Unity 4.6.1f1)

Сообщение andron 06 фев 2015, 19:32

Здравствуйте Ert.

Очень интересная работа.
Хочется попробовать, но вот показывается такая ошибка:
Assets/ComboBox/Scripts/Editor/ComboBoxEditor.cs(46,56): error CS0117: `RenderMode' does not contain a definition for `ScreenSpaceOverlay'


Куда рыть?

Заранее спасибо :)
andron
UNец
 
Сообщения: 12
Зарегистрирован: 06 фев 2015, 18:48

Re: uGUI ComboBox (Unity 4.6.1f1)

Сообщение Ert Donuell 07 фев 2015, 01:27

Какая у Вас версия Юнити?
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: uGUI ComboBox (Unity 4.6.1f1)

Сообщение andron 09 фев 2015, 12:23

Здравствуйте.

Последняя стабильная - 4.6.1f1 (не про).

Спасибо, Андрей.
andron
UNец
 
Сообщения: 12
Зарегистрирован: 06 фев 2015, 18:48

Re: uGUI ComboBox (Unity 4.6.1f1)

Сообщение Ert Donuell 10 фев 2015, 05:54

Спасибо за информацию. Странно, в этой версии RenderMode содержит ScreenSpaceOverlay: http://docs.unity3d.com/ScriptReference/RenderMode.ScreenSpaceOverlay.html

Заливаю обновление.

Меню раскрывается вверх, если снизу мало места.
Исправлен баг при наличии комбобокса в Grid и Vertical Layouts.
Сортировка в инспекторе больше не меняется автоматически.

Если не поможет, просто закомментируйте проблемную строку.
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: uGUI ComboBox (Unity 4.6.1f1)

Сообщение andron 10 фев 2015, 13:31

Ert Donuell писал(а):Спасибо за информацию. Странно, в этой версии RenderMode содержит ScreenSpaceOverlay: http://docs.unity3d.com/ScriptReference/RenderMode.ScreenSpaceOverlay.html

Заливаю обновление.

Меню раскрывается вверх, если снизу мало места.
Исправлен баг при наличии комбобокса в Grid и Vertical Layouts.
Сортировка в инспекторе больше не меняется автоматически.

Если не поможет, просто закомментируйте проблемную строку.


Спасибо, Ert.

Только когда закомментил - сработало.
Очень странно - в Visual Studio не видно никаких ошибок, а в Unity - есть.

По ходу нашел багу - http://screencast.com/t/9Drijquj3b8
Как я понимаю должно брать минимум из количества елементов.

Спасибо, Андрей.
andron
UNец
 
Сообщения: 12
Зарегистрирован: 06 фев 2015, 18:48

Re: uGUI ComboBox (Unity 4.6.1f1)

Сообщение andron 10 фев 2015, 18:10

И еще несколько вопросов:
http://screencast.com/t/LC4eQfS7bJS

1. Что-то со скорлингом, его не видно. Но можно крутить список.
2. Почему-то между combobox'ом и списком - большой пробел.

Вот настройки combobox'a:
http://screencast.com/t/5xFOOcvr1bB

Все другие опции создаются динамически из кода.
andron
UNец
 
Сообщения: 12
Зарегистрирован: 06 фев 2015, 18:48

Re: uGUI ComboBox (Unity 4.6.1f1)

Сообщение Ert Donuell 10 фев 2015, 19:25

Оу, это побочный эффект последних исправлений. Если у Вас остался предыдущий вариант, можете временно использовать его, закомментировав ту строчку. Я найду способ исправить неполадку.
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: uGUI ComboBox (Unity 4.6.1f1)

Сообщение Ert Donuell 10 фев 2015, 21:37

Баг исправлен.
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: uGUI ComboBox (Unity 4.6.1f1)

Сообщение sledo 11 фев 2015, 03:46

Хм, на первый взгляд весьма достойно. Простенько и эффективно.
(3A4OT)
sledo
Старожил
 
Сообщения: 831
Зарегистрирован: 05 янв 2014, 15:44

Re: uGUI ComboBox (Unity 4.6.1f1)

Сообщение Ert Donuell 11 фев 2015, 06:11

Благодарю :D
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

Re: uGUI ComboBox (Unity 4.6.1f1)

Сообщение andron 11 фев 2015, 12:06

andron писал(а):И еще несколько вопросов:
http://screencast.com/t/LC4eQfS7bJS

1. Что-то со скорлингом, его не видно. Но можно крутить список.
2. Почему-то между combobox'ом и списком - большой пробел.

Вот настройки combobox'a:
http://screencast.com/t/5xFOOcvr1bB

Все другие опции создаются динамически из кода.


Ert, спасибо.

Но ваш фикс не пофиксил эти две баги.
Хочу уточнить (на скриншоте не видно) - в комбобоксе больше 5 опций, но скрол не видно.

Еще раз спасибо.
andron
UNец
 
Сообщения: 12
Зарегистрирован: 06 фев 2015, 18:48

Re: uGUI ComboBox (Unity 4.6.1f1)

Сообщение Ert Donuell 11 фев 2015, 20:03

А в тестовой сцене тоже косяк тот же? Если так, я, должно быть, запамятовал перезалить файл. Или перезалил старой версией :-\
Если в тестовой сцене те же косяки, перезалью, как доберусь до ноута.
Добавить dmitrii.baranov.yumasoft в Skype
Аватара пользователя
Ert Donuell
Старожил
 
Сообщения: 781
Зарегистрирован: 05 июл 2010, 09:50
Откуда: Санкт-Петербург
  • ICQ

След.

Вернуться в Исходники (Копилка)

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

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