Инструменты UnityUI — MRTK3
UnityUI, возможно, не сразу приходит на ум, когда задумываешься о разработке трехмерных пользовательских интерфейсов. Однако с набором вспомогательных компонентов и служебных программа UnityUI позволяет создавать красивые и гибкие трехмерные пользовательские интерфейсы.
Совет
При разработке в UnityUI можно легко создать узкое место с точки зрения производительности. Перед созданием сложных макетов в UnityUI рекомендуется ознакомиться с этим руководством.
Пример
Ознакомьтесь с примером UnityUI для демонстрации различных компонентов, созданных для UnityUI.
Служебные компоненты пользовательского интерфейса
Указанные ниже компоненты помогают в отрисовке пользовательского интерфейса, но не являются отображаемыми графическими объектами.
ScaleMeshEffect
В компонентах UnityUI матрица unity_ObjectToWorld
(или UNITY_MATRIX_M
в URP) не является матрицей локального преобразования, на базе которой работает графический компонент, а относится к его родительскому холсту. Для многих эффектов шейдера в Graphics Tools должно быть известно масштабирование объектов. Для решения этой проблемы scaleMeshEffect.cs сохраняет сведения о масштабировании в атрибутах канала UV во время создания сетки пользовательского интерфейса.
Совет
Объект Canvas или CanvasRenderer в Graphics Tools при необходимости выдает запрос на добавление ScaleMeshEffect.cs.
RectMask2DFast
В UnityUI есть встроенный компонент RectMask2D. Обычно он используется для маскирования небольшого участка более крупной области. При маскирования большого числа объектов этот процесс может занять значительное время из-за нагрузки на ЦП. Чтобы избежать возникновения этого узкого места, в Graphics Tools есть компонент RectMask2DFast
.
RectMask2DFast
работает так же, как и RectMask2D
, и рекомендуется в качестве замены. При возникновении проблемы с обновлением маски после добавления или удаления объектов RectMask2DFast
может потребоваться вызвать обновление вручную, как показано ниже:
myRectMask2DFast.ForceClip = true;
Все шейдеры из каталогов Graphics Tools/Canvas/ и Graphics Tools/Standard Canvas поддерживают RectMask2D
, RectMask2DFast
и RoundedRectMask2D
.
Примечание
Шейдеры из каталогов Graphics Tools/Canvas/ и Graphics Tools/Standard Canvasне поддерживают свойство Softness (Мягкость) в RectMask2D
и RectMask2DFast.
.
RoundedRectMask2D
RoundedRectMask2D
является производным от RectMask2DFast
и функционирует аналогичным образом. Единственное различие заключается в том, что RoundedRectMask2D
содержит значение радиуса угла для скругленных углов. Этот радиус можно выбрать для всех углов или каждого угла по отдельности.
Примечание
Созданием экземпляров материалов должен управлять пользователь. Таким образом, на общие материалы может влиять RoundedRectMask2D
.
Графические компоненты пользовательского интерфейса
Указанные ниже графические компоненты помогают добавить на холст третье измерение.
CanvasElementRoundedRect
Этот компонент процедурно создает трехмерную прямоугольную сетку, которая затем назначается потоку вершин холста. Обычно этот компонент используется для создания сеток основы с помощью шейдера из каталога Graphics Tools/Canvas/Backplate.
CanvasElementBeveledRect
Как и CanvasElementRoundedRect
, этот компонент процедурно создает трехмерный скругленный прямоугольник, но со скошенными краями. Как правило, этот компонент используется для создания сетки основы с помощью шейдера из каталога Graphics Tools/Canvas/Beveled.
CanvasElementMesh
Компонент MeshRenderer в Unity можно использовать для вывода трехмерных сеток в UnityUI, но он не учитывает некоторые параметры макета, которые предоставляет UnityUI. Для решения этих проблем с макетом есть компонент CanvasElementMesh
.
Компонент CanvasElementMesh
принимает входную сетку и преобразует ее в компонент Graphic
.
Важно!
Чтобы вершины могли считываться в скрипте, у входной сетки должно быть включено свойство чтения/записи.
Анимация
Для анимации свойств материалов UnityUI можно использовать классы Canvas MaterialAnimator... Дополнительные сведения см. в документации по анимации.
Пункты меню
Для отображения макета пользовательского интерфейса в Graphics Tools есть несколько пунктов меню.
Привязки к углам и углы для привязок
Параметры Window > Graphics Tools > Canvas Anchors > Anchors to Corners (Окно > Graphics Tools > Привязки холста > Привязки к углам) и Window > Graphics Tools > Canvas Anchors > Corners to Anchors (Окно > Graphics Tools > Привязки холста > Углы для привязок) позволяют переводить отображение макета из системы закрепления в систему привязок (ограничений), свойственную для RectTransform, и обратно. Это может быть полезно при переходе между адаптивным и фиксированным режимами масштабирования макета.