Понимание модификаторов подпространства

Применимые устройства XR
Данное руководство поможет вам создавать приложения для устройств XR такого типа.
XR-гарнитуры
Проводные XR-очки

SubspaceModifier аналогичен модификатору Compose для компонуемых элементов в Subspace . SubspaceModifier позволяет манипулировать компонуемыми элементами в трехмерном пространстве, помогая позиционировать, вращать и добавлять поведение к узлам трехмерной компоновки.

Макет

По умолчанию Subspace ограничено рекомендуемым пространством для просмотра приложения . Эти границы используются при измерении расположения компонентов подпространства, аналогично границам в 2D-макетах Compose .

Границы заполнения

Модификаторы fillMaxSize , fillMaxWidth , fillMaxHeight и fillMaxDepth позволяют содержимому (частично) заполнять границы родительского элемента. Использование модификаторов fill помогает вашему приложению размещать контент независимо от характеристик дисплея XR-устройства.

Укажите размер и необходимый размер.

Модификаторы size , width , height и depth задают предпочтительный размер содержимого. Для задания точного размера используйте requiredSize , requiredWidth , requiredHeight и requiredDepth . Эти единицы измерения должны быть указаны в dp ; для преобразования из метров в dp используйте Meter.toDp() .

Позиционные составные элементы

offset

Модификатор offset перемещает составной объект в трехмерном пространстве вдоль осей x , y и z . Эти единицы измерения должны быть указаны в dp ; для преобразования из метров в dp используйте Meter.toDp() .

rotate

Модификатор rotate вращает заданный составной объект в пространстве. Направление и величину вращения можно задать различными способами:

  • Используя тангаж, рыскание и крен, которые определяют вращение вокруг осей x , y и z соответственно,
  • Используя параметр axisAngle , который представляет собой вектор Vector3 , обозначающий ось вращения и величину поворота вокруг неё,
  • Используя Quaternion , представляющий вращение.

lookAtUser

Модификатор lookAtUser постоянно вращает заданный составной объект в пространстве таким образом, чтобы он казался обращенным к зрителю. Аналогичный модификатор, billboard , также вращает объект так, чтобы он был обращен к зрителю, но содержимое при этом остается в вертикальном положении.

Для использования этих модификаторов вашему приложению необходимо предоставить разрешение android.permission.HEAD_TRACKING . Кроме того, в текущей сессии необходимо установить параметр HeadTrackingMode.LAST_KNOWN .

Изменить внешний вид составных элементов

alpha

Модификатор alpha задает прозрачность элемента и его дочерних элементов, где 0f означает полную прозрачность, а 1.0f — полную непрозрачность.

scale

Модификатор scale изменяет масштаб содержимого составного объекта по горизонтальной, вертикальной осям и оси глубины.

Тестирование и доступность

semantics

Модификатор semantics добавляет семантику к узлу компоновки для использования при тестировании и обеспечении доступности. См. раздел «Семантика в Jetpack Compose» и SemanticsModifier .

testTag

Модификатор testTag — это сокращение от SemanticsPropertyReceiver.testTag , которое позволяет тестовым фреймворкам находить этот элемент в тестах.