> Материал, который вы сейчас читаете, является [[Типы материалов на сайте|конспектом]]. Релевантные статьи: - Habr.com -> [Unity UI Toolkit: MVVM ннада?](https://habr.com/ru/articles/689134/) - Habr.com -> [Unity: Как реализовать бесконечный ListView с изображениями?](https://habr.com/ru/articles/746782/) - Onewheelstudio.com -> [State of UI in Unity - UI Toolkit](https://onewheelstudio.com/blog/2022/10/28/state-of-ui-tool-kit) Конспекты: - [[Сравнение UI-систем в Unity]] - [[Какие компоненты доступны в UI Toolkit?]] `UI Toolkit` (ранее известный как UIElements) был впервые представлен в Unity 2019.1 (2019 год) как экспериментальная функция, а затем стал более стабильным и функциональным в последующих версиях. `UI Toolkit` активно разрабатывается компанией Unity как новая альтернатива `Unity UI`. Однако, на момент 27.06.24 дело ещё не доведено до конца и поэтому в ней нет некоторых функций, которые есть в `Unity UI`. На сайте Unity в формате [презентации](https://unity.com/ru/features/ui-toolkit) рассказывается о UI Toolkit. ##### Основывается на веб-технологиях UI Toolkit использует концепции и технологии, знакомые из веб-разработки. UI-интерфейс состоит из - **UXML (Unity Extensible Markup Language)**: Это язык разметки, похожий на HTML, который используется для определения структуры и содержимого пользовательского интерфейса. - **USS (Unity Style Sheets)**: Это язык стилей, аналогичный CSS, который используется для стилизации элементов интерфейса, определённых в UXML. Какая система [[Лейаут (layout) или Компоновка|компоновки (layout)]] используется: - **Yoga Layout**: Это движок для компоновки, который используется в UI Toolkit и поддерживает концепции FlexBox, популярные в веб-разработке. - **FlexBox**: Модель компоновки, которая позволяет легко распределять пространство между элементами интерфейса и выравнивать их в контейнере, используется через Yoga Layout в UI Toolkit. ##### Разделение контента, стилей и поведения Каждый аспект пользовательского интерфейса (UI) отделен друг от друга и управляется независимо. - **Контент (UXML)**: Определяет элементы и их иерархию в пользовательском интерфейсе. - **Стилизация (USS)**: Определяет внешний вид элементов (цвета, шрифты, отступы и т.д.). - **Поведение (C#)**: Определяет логику и интерактивность элементов интерфейса, написанную на C#. ##### Высокая производительность UI Toolkit оптимизирован для работы с большим количеством UI-элементов, что позволяет создавать сложные и интерактивные интерфейсы без значительного влияния на производительность игры. [[Высокая производительность в UI Toolkit на Unity]] ##### Модульность и повторное использование кода С помощью UI Toolkit можно создавать модульные UI-компоненты, которые можно легко повторно использовать в разных частях проекта, что экономит время и усилия на разработку. ##### Плюсы и минусы по сравнению с Unity UI Плюсы: - Позволяет создавать UI-элементы без использования текстур. Не нужно создавать и импортировать изображения из графических редакторов (к примеру, Figma). Это значительно сокращает затрачиваемое на переход между инструментами, а также снижает общий объем памяти и размер сборки. - UI Toolkit позволяет разрабатывать UI-интерфейсы для [[Editor UI и Runtime UI|Editor UI]] Минусы: - Пока что нет встроенной поддержки освещения, визуальных эффектов (VFX) и пользовательских шейдеров (custom shaders) для элементов интерфейса. - UI Toolkit не поддерживает взаимодействие с событиями в мировом пространстве (например, клики по элементам интерфейса, находящимся в игровом мире). - Меньше документации и примеров использования по сравнению с Unity UI, - [[Использование строк для поиска и идентификации UI-элементов в UI Toolkit| Использование строк для поиска и идентификации UI-элементов]] (Компания Unity обещает изменить подход) - В сети жалуются, что некоторая поддержка анимации есть, но не полная (не углублялся в данный вопрос).