WebXRManager - Руководство по Вердж3Д - Софт Эйт Софт
Description: Узнайте как использовать WebXRManager в интерактивных 3Д-веб-приложениях сделанных на Вердж3Д

# WebXRManager

Этот класс представляет собой абстракцию WebXR Device API и внутренне используется WebGLRenderer. WebXRManager также предоставляет публичный интерфейс, который позволяет пользователям включать/выключать XR и выполнять связанные с XR задачи, такие как получение информации о контроллерах.

## Свойства

### # .cameraAutoUpdate : Boolean

Нужно ли обновлять XR-камеру менеджера автоматически или нет. По умолчанию `true`.

### # .enabled : Boolean

Это свойство уведомляет рендерер о готовности к XR-рендерингу. По умолчанию `false`. Установите его в `true`, если вы собираетесь использовать XR в своем приложении.

### # .isPresenting : Boolean

Является ли презентация XR активной или нет. По умолчанию `false`. Это свойство доступно только для чтения и автоматически устанавливается WebXRManager.

## Методы

### # .arHitTest(x : Float, y : Float, hitCallback : Function, missCallback : Function)

- x — X-координата в пространстве экрана.
- y — Y-координата в пространстве экрана.
- hitCallback — обработчик, вызываемый при успешном пересечении луча с поверхностью.
- missCallback — обработчик, вызываемый при отсутствии пересечения луча с поверхностью.

Запускает режим асинхронного тестирования пересечения в режиме дополненной реальности.

### # .getCamera() → ArrayCamera

Возвращает экземпляр класса ArrayCamera, который представляет камеру, используемую для XR-сессии. Каждому глазу соответствует свой объект камеры из массива cameras.

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

### # .getController(index : Integer) → Group

index — индекс контроллера.

Возвращает группу, представляющую систему координат target ray контроллера. Используйте эту систему координат для визуализации 3Д-объектов, которые помогают пользователю в задачах наведения, таких как взаимодействие с пользовательским интерфейсом.

### # .getControllerGrip(index : Integer) → Group

index — индекс контроллера.

Возвращает группу, представляющую систему координат `grip` контроллера. Используйте эту систему координат, если пользователь собирается держать в руке другие 3Д-объекты, например световой меч.

Примечание: если вы хотите одновременно показать что-то в руке пользователя и предложить луч наведения, вам нужно прикрепить удерживаемый объект к группе, возвращаемой .getControllerGrip(), а луч — к группе, возвращаемой .getController(). Идея заключается в том, чтобы иметь две разные группы в двух разных координатных пространствах для одного и того же контроллера WebXR.

### # .getFoveation() → Float

Возвращает уровень фовеации, используемый XR-композитором для слоя проекции.

### # .getHand(index : Integer) → Group

index — индекс контроллера.

Возвращает группу, определяющие так называемые `hand` и `joint` системы координат XR-контроллера. Данные системы координат используются для визуализации рук пользователя в отсутствии контроллера.

### # .getPlanes() → Set

Возвращает плоскости, определённые в процессе работы API plane detection WebXR.

### # .getReferenceSpace() → String

Возвращает опорную систему координат.

### # .getSession() → XRSession

Возвращает объект `XRSession`, позволяющий осуществлять тонкую настройку активных WebXR-сессий на уровне приложения.

### # .setFoveation(foveation : Float)

foveation — устанавливаемый уровень фовеации.

Устанавливает уровень фовеации, используемый XR-композитором для слоя. Значение должно находиться в интервале от `0` до `1`.

### # .setFramebufferScaleFactor(framebufferScaleFactor : Float)

framebufferScaleFactor — устанавливаемый коэффициент масштабирования фреймбуфера.

Указывает коэффициент масштабирования, используемый при определении размера фреймбуффера при рендеринге на XR-устройстве. Значение задается относительно разрешения дисплея XR-устройства по умолчанию. По умолчанию `1`. Значение `0.5` определяет фреймбуфер с 50% разрешением от исходного.

Примечание: изменить коэффициент масштабирования фреймбуфера в процессе отображении XR-контента невозможно.

### # .setReferenceSpace(referenceSpace : XRReferenceSpace)

referenceSpace — пользовательская опорная система координат.

Метод используется для установки опорной системы координат.

### # .setReferenceSpaceType(referenceSpaceType : String) → void

referenceSpaceType — устанавливаемый тип опорной системы координат.

Может использоваться для настройки пространственных отношений с физическим окружением пользователя. В зависимости от того, как пользователь перемещается в трехмерном пространстве, установка соответствующего опорного пространства может улучшить отслеживание. По умолчанию используется `"local-floor"`. Возможные типы и их использование смотрите в документации MDN.

Примечание: изменить тип опорной системы координат в процессе отображении XR-контента невозможно.

### # .updateCamera(camera : PerspectiveCamera)

Обновляет состояние XR-камеры. Этот метод используется в случае, если .cameraAutoUpdate установлен в `false`. Метод принимает в качестве параметра камеру сцены (не XR). Её положение будет обновлено с учётом позиции XR-камеры в процессе вызова данного метода.

## Пазлы

Пазлы AR/VR могут использоваться для работы с AR/VR сессиями без программирования.

## Исходный файл

О том как получить исходный код этого модуля читайте тут.