Unity предназначен для UI(пользовательский интерфейс) Позволяет пользователю взаимодействовать с вашим приложением. Подробнее
См. в Словарь Toolkit, чтобы стать рекомендуемой системой пользовательского интерфейса для новых проектов разработки пользовательского интерфейса, но в нем по-прежнему отсутствуют некоторые функции пользовательского интерфейса Unity (uGUI) и IMGUI. Эти старые системы больше подходят для определенных случаев использования и необходимы для поддержки устаревших проектов.
На этой странице представлено общее сравнение функций UI Toolkit, Unity UI и IMGUI, а также примечания об их соответствующих подходах к дизайну пользовательского интерфейса. Используйте его, чтобы определить, какая система пользовательского интерфейса подходит для вашего проекта.
ВАЖНЫЙ |
---|
UI Toolkit находится в активной разработке. Эта страница будет часто обновляться по мере развития набора функций.. |
Общие соображения
Тип пользовательского интерфейса: редактор или среда выполнения
Ваш выбор системы пользовательского интерфейса зависит от того, разрабатываете ли вы пользовательский интерфейс для редактора Unity или пользовательский интерфейс среды выполнения для игры или приложения.
Тип пользовательского интерфейса | Инструментарий пользовательского интерфейса | Пользовательский интерфейс Unity (uGUI) | IMGUI | Примечания |
---|---|---|---|---|
Runtime (debug) | ✔ * | ✔ | ✔ | Это относится к временному пользовательскому интерфейсу времени выполнения, используемому для целей отладки.. |
Runtime (in-game) | ✔ * | ✔ | Not Recommended | Из соображений производительности Unity не рекомендует IMGUI для пользовательского интерфейса во время выполнения игры. |
Unity Editor | ✔ | ❌ | ✔ | Вы не можете использовать пользовательский интерфейс Unity для создания пользовательского интерфейса для редактора Unity. |
* Требуется пакет UI Toolkit, в настоящее время находится в предварительной версии.
Чтобы создать пользовательский интерфейс среды выполнения, вы можете выбрать между UI Toolkit и Unity UI (uGUI). См. раздел Сравнение функций: UI Toolkit и Unity UI (uGUI).
Чтобы создать пользовательский интерфейс для редактора Unity, вы можете выбрать между UI Toolkit и IMGUI. См. Сравнение функций: UI Toolkit и IMGUI.
Роли и наборы навыков
Набор навыков вашей команды и уровень владения различными технологиями также являются важным фактором.
Тип пользователя | UI Инструментарий | Unity UI (uGUI) |
IMGUI | Примечания |
---|---|---|---|---|
Programmer | ✔ | ✔ | ✔ | Программисты могут использовать любой инструмент разработки игр или API. |
Technical Artist | Partial | ✔ | ❌ | Технические художники, знакомые с инструментами и рабочими процессами Unity, основанными на GameObject, скорее всего, будут чувствовать себя комфортно, работая с GameObjects, компонентами и представлением Scene.
Им может не понравиться веб-подход UI Toolkit или подход IMGUI на чистом C#. |
UI Designer | ✔ | Partial | ❌ | Дизайнеры пользовательского интерфейса, знакомые с инструментами создания пользовательского интерфейса, скорее всего, освоят подход, основанный на документах, в UI Toolkit.
Если они не знакомы с рабочими процессами на основе GameObject, им может потребоваться помощь программистов и/или дизайнеров уровней. |
Инновации и развитие
Набор инструментов пользовательского интерфейса находится в активной разработке. Unity добавляет новые функции с каждым выпуском. Unity UI и IMGUI — это устоявшиеся системы пользовательского интерфейса, проверенные в производственной среде, но редко обновляемые.
Unity UI и IMGUI могут быть лучшим выбором, если вам нужны функции, которых еще нет в UI Toolkit, или вы планируете поддерживать или повторно использовать старый контент пользовательского интерфейса.
Сравнение функций: UI Toolkit и Unity UI (uGUI)
В этом разделе UI Toolkit сравнивается с пользовательским интерфейсом Unity (вместе с пакетом TextMesh Pro) для разработки пользовательского интерфейса во время выполнения для игр и приложений.
- Разработка пользовательского интерфейса редактора Unity
- Рабочий процесс
- Стили
- Макет
- События
- ВизуализацияПроцесс отображения графики на экране (или в визуализировать текстуру). По умолчанию основная камера в Unity отображает изображение на экране. Подробнее
См. в Словарь - Анимация
- Настраиваемость
Разработка пользовательского интерфейса редактора Unity
Невозможно разрабатывать пользовательские интерфейсы для редактора Unity с помощью пользовательского интерфейса Unity.
Рабочий процесс
Характерная черта | UI Инструментарий | UGUI+TMP | Примечания |
---|---|---|---|
Nested Prefabs | Partial | ✔ | Шаблоны UXML в UI Toolkit поддерживают переопределения атрибутов, которые аналогичны измененным свойствам в системе Unity Prefab.
UGUI основан на GameObject и поддерживает стандартные префабы Unity. |
WYSIWYG authoring | ✔ | ✔ | Unity UI и UI Toolkit предлагают совершенно разные способы разработки WYSIWYG.
Поскольку пользовательский интерфейс Unity основан на GameObject, вы можете настроить представление сцены для авторинга WYSIWYG. UI Toolkit предоставляет пакет UI Builder (в настоящее время находится в предварительной версии) для создания пользовательского интерфейса WYSIWYG на основе документов с рабочим процессом, подобным веб-технологиям. |
Theming | Planned | ❌ | Дорожная карта UI Toolkit включает поддержку функций тем через UI Builder и импорт USS. |
Layout & Styling Debugger | ✔ | ✔ | Вы можете отлаживать интерфейсы пользовательского интерфейса Unity в окне Inspector.
Комплект UI Toolkit содержит специальный отладчик (меню: Окно > UI Toolkit > Отладчик), аналогичный инструментам отладки, имеющимся в основных веб-браузерах. |
Scene integration | ✔ | ✔ | Игровые объекты пользовательского интерфейса Unity видны в представлении «Сцена» и в представлении «Игра».
Вы можете интегрировать пользовательский интерфейс среды выполнения, созданный с помощью пакета UI Toolkit (в настоящее время в предварительной версии), с помощью компонентов среды выполнения и отображать его в представлении игры. |
Styling
Характерная черта | UI Инструментарий | UGUI+TMP | Примечания |
---|---|---|---|
Inline styles | ✔ | ✔ | |
Cascading styles | ✔ | ❌ | |
Pseudo-states (for example, hover or active) | ✔ | ✔ | Пользовательский интерфейс Unity предоставляет простые псевдосостояния, и вы можете создавать для него сложные псевдосостояния с помощью графа анимации Unity.
UI Toolkit поддерживает псевдосостояния через USS. |
Rich text tags | Planned | ✔ | Поддержка расширенных текстовых тегов в UI Toolkit запланирована как часть обновления бэкэнда рендеринга текста Unity.
Пользовательский интерфейс Unity поддерживает базовый набор тегов форматированного текста по умолчанию и более широкий набор через пакет TextMesh Pro. |
SDF text | Planned | ✔ | Поддержка текста SDF в UI Toolkit запланирована как часть капитального ремонта бэкенда рендеринга текста Unity.
Пользовательский интерфейс Unity поддерживает текст SDF через пакет TextMesh Pro. |
Font fallbacks | Planned | ✔ | Поддержка ассетов шрифтов и резервных шрифтов в UI Toolkit запланирована как часть капитального ремонта бэкэнда рендеринга текста Unity.
Пользовательский интерфейс Unity поддерживает резервные шрифты через пакет TextMesh Pro. |
Layout
Хотя Unity UI и UI Toolkit предлагают одинаковые возможности компоновки, их системы компоновки совершенно разные.
- С помощью пользовательского интерфейса Unity вы управляете макетом в GameObjectфундаментальном объекте в сценах Unity, который может представлять персонажей, реквизит, пейзажи, камеры, путевые точки и многое другое. Функциональность GameObject определяется прикрепленными к нему компонентами. Подробнее
Просмотреть на уровне Словарь с использованием компонентов RectTransForm. - С помощью UI Toolkit вы определяете макет в таблицах стилей USS, используя более веб-подобную систему макетов на основе Flexbox.
Характерная черта | UI Инструментарий | UGUI+TMP | Примечания |
---|---|---|---|
Manual layout (absolute or relative to parent) | ✔ | ✔ | |
One-dimensional (horizontal and vertical) | ✔ | ✔ | |
Two-dimensional (grid) | Research | ✔ | Пользовательский интерфейс Unity предоставляет GridLayoutGroup компонент.
Что касается UI Toolkit, Unity изучает возможность реализации сеток в стиле CSS в USS. |
Events
Характерная черта | UI Инструментарий | UGUI+TMP | Примечания |
---|---|---|---|
Integration with Unity’s new Input System | Planned | ✔ | |
Serialized events | Planned | ✔ | UI Toolkit может привязывать события только к элементам в C#.
Пользовательский интерфейс Unity может сериализовать привязки событий. |
Visual Scripting for events | Research | ❌ |
Визуализация
Выбор между UI Toolkit и Unity UI — это компромисс между высокой производительностью и универсальностью/поддерживаемыми функциями.
В настоящее время UI Toolkit поддерживает меньший набор возможностей, но его легче оптимизировать для повышения производительности рендеринга. Он основан на документах, управляется данными и использует один шейдерпрограмму, работающую на графическом процессоре. Подробнее
См. в Словарь атлас материалов и текстур для построения иерархий элементов. Это хороший выбор для простого экранного пользовательского интерфейса (например, меню или проекционных экранов), включающего сложные иерархии элементов и хорошо работающего на любой платформе.
Пользовательский интерфейс Unity более универсален и поддерживает расширенные функции рендеринга и работы с текстом. Вы можете настроить любой визуальный элемент с помощью пользовательского материала и воспользоваться расширенными функциями обрезки и маскирования. Однако эти функции могут затруднить удержание более сложного пользовательского интерфейса в рамках бюджета производительности.
Характерная черта | UI Инструментарий | UGUI+TMP | Примечания |
---|---|---|---|
Supported for Built-in Render Pipeline | ✔ | ✔ | |
Поддерживается для универсального конвейера рендеринга (URP). | ✔ | ✔ | |
Поддерживается для конвейера рендеринга высокого разрешения (HDRP) | ✔ | ✔ | |
Screen-space (2D) rendering | ✔ | ✔ | |
World-space (3D) rendering | Planned | ✔ | |
Custom materials and shaders | Planned | ✔ | |
Shader Graph integration | Planned | ❌ | |
SVG integration | Planned | Planned | Пакет com.unity.vectorgraphics обеспечивает поддержку SVG для пользовательского интерфейса Unity. Однако пакет в настоящее время находится в предварительной версии и не рекомендуется для производства. |
Anti-aliasing | Planned | Partial | Screen Space-Camera и World Space в Unity UI режимы рендерингаA Стандартный параметр материала шейдера, который позволяет выбрать, использует ли объект прозрачность, и если да, то какой тип режима наложения использовать. Подробнее См. в Словарь используйте КамерыКомпонент, который создает изображение определенной точки обзора в вашей сцене. Вывод либо рисуется на экране, либо фиксируется в виде текстуры. Подробнее См. в Словарь, которые применяются сглаживаниеМетод уменьшения артефактов, таких как зубчатые линии (неровности), на изображениях, чтобы сделать их более гладкими. More info See in Словарь. |
2D rotation (object remains on the UI plane) | ✔ | ✔ | |
3D rotation | Planned | ✔ | |
Rectangle clipping | Partial | ✔ | Инструментарий пользовательского интерфейса поддерживает обрезку прямоугольников без поворота. Прямоугольник должен быть выровнен по оси. |
Mask clipping | Partial | ✔ | Инструментарий пользовательского интерфейса поддерживает отсечение маски с двухмерным вращением.
Пользовательский интерфейс Unity поддерживает вращение 3D-маски. |
Nested masking | Partial/Planned | ✔ | Вложенное маскирование инструментария пользовательского интерфейса ограничено одним уровнем, но не влияет на пакетную обработку вызовов отрисовки. Планируется многоуровневое вложенное маскирование.
Пользовательский интерфейс Unity поддерживает до восьми уровней вложенной маскировки, но прерывает пакетную обработку вызовов отрисовки на каждом втором уровне. |
Анимация
Характерная черта | UI Инструментарий | UGUI+TMP | Примечания |
---|---|---|---|
Tweening workflow | Experimental | Partial | |
Интеграция с Анимационными клипамиАнимационные данные, которые можно использовать для анимированных персонажей или простых анимаций. Это простое «единичное» движение, такое как (один конкретный пример) «Простояние», «Ходьба» или «Бег». Подробнее См. в Словарь и на временной шкале |
Planned | ✔ |
Настраиваемость
Характерная черта | UI Инструментарий | UGUI+TMP | Примечания |
---|---|---|---|
Open Source / Customizable | Planned | ✔ | Пакет UI Toolkit (в настоящее время находится в предварительной версии) можно настраивать. |
Сравнение функций: UI Toolkit и IMGUI
В этом разделе UI Toolkit сравнивается с IMGUI для разработки пользовательских интерфейсов для редактора Unity.
- Inspector integration
- Controls and data binding
- Workflow
- Styling
- Layout
- Events
- Rendering
- Animation
- Customizability
Интеграция инспектора
Характерная черта | UI Инструментарий | IMGUI | Примечания |
---|---|---|---|
Default Inspectors | Planned | ✔ | UI Toolkit станет серверной частью пользовательского интерфейса по умолчанию для Inspectorокна Unity, в котором отображается информация о текущем выбранном игровом объекте, активе или настройках проекта, позволяя вам проверять и редактировать значения. Дополнительная информация См. в окнах Словарь (если у типа нет пользовательских редакторов). |
Inspector: Edit custom object types | ✔ | ✔ | |
Inspector: Edit custom property types | ✔ | ✔ | |
Inspector: Mixed values (multi-editing) support | Planned | ✔ | |
Array / list-view control | Planned | ✔ |
Элементы управления и привязка данных
Характерная черта | UI Инструментарий | IMGUI | Примечания |
---|---|---|---|
Tree View | Planned | ✔ | |
Grid View | Planned | ❌ | |
Graph View | Planned | ❌ | |
Data binding: Serialized properties | ✔ | ✔ | |
Data binding from any C# type | Planned | ❌ | |
Data binding to any attribute or style value | Planned | ❌ |
Рабочий процесс
Характерная черта | UI Инструментарий | IMGUI | Примечания |
---|---|---|---|
Вложенные префабыТип ресурса, который позволяет хранить GameObject вместе с компонентами и свойствами. Префаб действует как шаблон, из которого вы можете создавать новые экземпляры объектов на сцене. More info See in Словарь |
Partial | ❌ | Шаблоны UXML в UI Toolkit поддерживают переопределения атрибутов, которые аналогичны измененным свойствам в системе Unity Prefab. |
WYSIWYG authoring | ✔ | ❌ | UI Toolkit предоставляет пакет UI Builder (в настоящее время находится в предварительной версии) для создания пользовательского интерфейса WYSIWYG на основе документов с рабочим процессом, подобным веб-технологиям. |
Theming | Planned | ✔ | |
Layout & Styling Debugger | ✔ | ✔ | IMGUI имеет ограниченный инструмент отладки макетов и стилей.
UI Toolkit предоставляет специальный отладчик (меню: Окно > UI Toolkit > Отладчик), аналогичный инструментам отладки в основных веб-браузерах. |
SceneСцена содержит окружение и меню вашей игры. Думайте о каждом уникальном файле сцены как об уникальном уровне. В каждой сцене вы размещаете свое окружение, препятствия и декорации, по сути проектируя и создавая свою игру по частям. More info See in Словарь |
✔ | ✔ |
Styling
Характерная черта | UI Инструментарий | IMGUI | Примечания |
---|---|---|---|
Inline styles | ✔ | ✔ | |
Cascading styles | ✔ | ❌ | |
Pseudo-states (for example, hover or active) | ✔ | Partial | |
Rich text tags | Planned | ✔ | Поддержка расширенных текстовых тегов в UI Toolkit запланирована как часть обновления бэкэнда рендеринга текста Unity. |
SDF text | Planned | ❌ | Поддержка текста SDF в UI Toolkit запланирована как часть обновления бэкенда рендеринга текста Unity. |
Font fallbacks | Planned | ✔ |
Макет
Хотя Unity UI и IMGUI предлагают одни и те же возможности компоновки, их системы компоновки совершенно разные.
- IMGUI использует систему GUILayout на основе C#.
- В UI Toolkit используется система макетов на основе Flexbox, более похожая на Интернет. Вы управляете макетом с помощью стилей USS.
Характерная черта | UI Инструментарий | IMGUI | Примечания |
---|---|---|---|
Manual layout (absolute or relative to parent) | ✔ | ✔ | |
One-dimensional (horizontal and vertical) | ✔ | ✔ | |
Two-dimensional (grid) | In research | ❌ | Что касается UI Toolkit, Unity изучает возможность реализации сеток в стиле CSS в USS. |
События
Характерная черта | UI Инструментарий | IMGUI | Примечания |
---|---|---|---|
Интеграция с новой системой ввода Unity. | Planned | ❌ | |
Serialized events | Planned | ❌ | |
Visual Scripting for events | Research | ❌ |
Rendering
Характерная черта | UI Инструментарий | IMGUI | Примечания |
---|---|---|---|
Поддерживается для встроенного конвейера рендеринга. | ✔ | ✔ | |
Поддерживается для универсального конвейера рендеринга (URP). | ✔ | ✔ | |
Поддерживается для конвейера рендеринга высокого разрешения (HDRP) | ✔ | ✔ | |
Screen-space (2D) rendering | ✔ | ✔ | |
World-space (3D) rendering | Planned | ❌ | Хотя технически возможно создать трехмерный пользовательский интерфейс в IMGUI с помощью GUI.matrix , делать это не рекомендуется. |
Custom materials and shaders | Planned | ❌ | |
Shader Graph integration | Planned | ❌ | |
SVG integration | Planned | ❌ | |
Anti-aliasing | Planned | ❌ |
Анимация
Характерная черта | UI Инструментарий | IMGUI | Примечания |
---|---|---|---|
Tweening workflow | Experimental | ❌ | |
Integration with Animation Clips and Timeline | Planned | ❌ |
Настраиваемость
Характерная черта | UI Инструментарий | IMGUI | Примечания |
---|---|---|---|
Open Source / Customizable | Planned | Пакет UI Toolkit (в настоящее время находится в предварительной версии) можно настраивать. |