Сравнение систем UI в Unity
Эта страница предоставляет высокоуровневое сравнение функций UI Toolkit, uGUI и IMGUI и их соответствующих подходов к UI дизайну.
Общие соображения
В следующей таблице перечислены рекомендуемые и альтернативные системы UI для времени выполнения и редактора:
| Unity 6.3 | РЕКОМЕНДАЦИЯ | Альтернативный вариант |
|---|---|---|
| Среда выполнения | uGUI (Unity UI) | UI Toolkit |
| Редактор | UI Toolkit | IMGUI |
Роли и навыки
Набор навыков вашей команды и уровень комфорта с различными технологиями также является важным соображением.
В следующей таблице перечислены рекомендуемые системы для различных ролей:
| Роли | UI Toolkit | uGUI (Unity UI) | IMGUI | Наборы навыков |
|---|---|---|---|---|
| Программист | ✅ | ✅ | ✅ | Программисты могут использовать любой инструмент разработки игр или API. |
| Технический художник | Частично | ✅ | ❌ | Техническим художникам, знакомым с инструментами и рабочими процессами Unity на основе GameObject, скорее всего, будет удобно работать с GameObject, компонентами и окном Scene. Однако веб-подобный подход UI Toolkit или основанный исключительно на C# подход IMGUI могут оказаться для них непривычными. |
| UI Дизайнер | ✅ | Частично | ❌ | Дизайнеры UI, знакомые с инструментами создания UI, скорее всего, будут довольны документным подходом UI Toolkit и могут использовать UI Builder для визуального редактирования своих UI. Если они не знакомы с рабочими процессами, основанными на GameObject, им может потребоваться помощь программистов или дизайнеров уровней. |
Инновации и развитие
UI Toolkit находится в активной разработке и регулярно выпускает новые функции. uGUI и IMGUI являются установленными и проверенными в производстве UI системами, которые обновляются редко.
uGUI и IMGUI могут быть лучшим выбором, если вам нужны функции, которые еще не доступны в UI Toolkit, или вам нужно поддерживать или повторно использовать более старое содержимое UI.
Среда выполнения
UI Toolkit является альтернативой uGUI (Unity UI), если вы создаете экранное наложение UI, которое работает на широком диапазоне разрешений экрана. Рассмотрите UI Toolkit для выполнения следующих действий:
- Выполнение работ с использованием значительного количества пользовательских интерфейсов
- Требуйте знакомые авторские рабочие потоки для художников и дизайнеров
- Поиск возможностей рендеринга без текстуры UI
- UI расположен и освещен в мире 3D
- Усовершенствованные визуальные эффекты с настраиваемыми шейдерами и материалами
uGUI является рекомендуемым решением для следующих:
- Легкая ссылка от
MonoBehaviours
Случаи использования
В следующей таблице кратко описано, какая система часто используется для основных сценариев использования времени выполнения:
| Unity 6.3 | Часто используется для |
|---|---|
| Меню с несколькими разрешениями и HUD в интенсивных UI проектах | UI Toolkit |
| Космическое пространство UI и VR | UI Toolkit |
| UI, требующий специальных шейдеров и материалов | UI Toolkit |
| UI требующий анимации с ключевыми кадрами | uGUI |
В деталях
В следующей таблице сравнивается поддержка подробных функций времени выполнения в системах UI:
| Unity 6.3 | UI Toolkit | uGUI |
|---|---|---|
| WYSIWYG автор | ✅ | ✅ |
| Компоненты многоразового использования | ✅ | ✅ |
| Отладчик макета и стиля | ✅ | ✅ |
| Создание сцены | ❌ | ✅ |
| Богатые текстовые метки | ✅ | ✅ |
| Масштабируемый текст | ✅ | ✅ |
| Резервные шрифты | ✅ | ✅ |
| Адаптивная схема | ✅ | ✅ |
| Система ввода поддержка | ✅ | ✅ |
| Сериальные события | ❌ | ✅ |
| Совместим с Конвейерами рендеринга | ✅ | ✅ |
| Рендирование экранного пространства (2D) | ✅ | ✅ |
| Космическое изображение (3D) | ✅ | ✅ |
| Специальные материалы и шейдеры | ✅ | ✅ |
| Спрайт / Спрайт-атласГрафика: ** Утилита, которая упаковывает несколько текстур sprite плотно вместе в одной текстуре, известной как атлас. Больше информации. 2D: Текстура, состоящая из нескольких более мелких текстур. Также называется атласом текстур, изображением спрайта, листом спрайта или упакованной текстурой. Больше информации. См. в Глоссарий поддержка** |
✅ | ✅ |
| Прямоугольная обрезка | ✅ | ✅ |
| Обрезка маски | ✅ | ✅ |
| Вложенная маскировка | ✅ | ✅ |
| Интеграция с Animation Clips и Timeline | ❌ | ✅ |
| Система связывания данных | ✅ | ❌ |
| UI анимации переходов | ✅ | ❌ |
| Текстурные элементы | ✅ | ❌ |
| Усовершенствованный гибкий макет | ✅ | ❌ |
| Глобальное управление стилями | ✅ | ❌ |
| Динамический атлас текстур | ✅ | ❌ |
| UI выравнивание | ✅ | ❌ |
| Язык справа налево и эмодзи | ✅ | ❌ |
| SVG поддержка | ✅ | ❌ |
Редактор
UI Toolkit рекомендуется, если вы создаете сложные инструменты редактора. Он рекомендуется по следующим причинам:
- Улучшение возможностей повторного использования и разъединения
- Визуальные инструменты для авторства UI
- Улучшенная масштабируемость для обслуживания кода и производительности
IMGUI является альтернативой UI Toolkit для следующего:
- Неограниченный доступ к расширяемым возможностям редактора
- Свет API для быстрого отображения UI на экране
Случаи использования
В следующей таблице перечислены рекомендуемые системы для основных сценариев использования Редактора:
| Unity 6.3 | РЕКОМЕНДАЦИЯ |
|---|---|
| Комплексный редактор | UI Toolkit |
| Ящики для вещей | UI Toolkit |
| Сотрудничество с дизайнерами | UI Toolkit |
В деталях
В следующей таблице перечислены рекомендуемые системы для подробных функций Редактора:
| Unity 6.3 | UI Toolkit | IMGUI |
|---|---|---|
| WYSIWYG автор | ✅ | ❌ |
| Компоненты многоразового использования | ✅ | ❌ |
| Глобальное управление стилями | ✅ | ✅ |
| Отладчик макета и стиля | ✅ | ❌ |
| Богатые текстовые метки | ✅ | ✅ |
| Масштабируемый текст | ✅ | ❌ |
| Резервные шрифты | ✅ | ✅ |
| Адаптивная схема | ✅ | ✅ |
| Инспекторы по умолчанию | ✅ | ✅ |
| Inspector: Редактирование пользовательских типов объектов | ✅ | ✅ |
| Inspector: Изменение типов пользовательских свойств | ✅ | ✅ |
| Inspector: Поддержка смешанных значений (множественное редактирование) | ✅ | ✅ |
| Управление массивами и списками | ✅ | ✅ |
| Привязка данных: Сериализованные свойства | ✅ | ✅ |
| Усовершенствованный гибкий макет | ✅ | ❌ |
| Язык справа налево и эмодзи | ✅ | ❌ |
| SVG поддержка. | ✅ | ❌ |