Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Сравнение систем пользовательского интерфейса в Unity

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.

Рабочий процесс

Характерная черта 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.

Интеграция инспектора

Характерная черта 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 (в настоящее время находится в предварительной версии) можно настраивать.
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3