Spec-Zone.ru › Web APIs

PositionSensorVRDevice

Устаревшее: Эта функция больше не рекомендуется. Хотя некоторые браузеры могут её поддерживать, она может быть удалена из соответствующих веб-стандартов, удаление может быть в процессе или она может поддерживаться только для совместимости. Избегайте её использования и, при возможности, обновите существующий код; обратитесь к таблице совместимости в нижней части этой страницы, чтобы принять решение. Помните, что эта функция может перестать работать в любое время.

Нестандартная: Эта функция не является стандартной и не находится на стадии стандартизации. Не используйте её на сайтах, ориентированных на Веб, в условиях производства: она не будет работать для каждого пользователя. Также могут возникнуть значительные несовместимости между реализациями, а поведение может измениться в будущем.

Интерфейс PositionSensorVRDevice API WebVR представляет датчик положения VR-оборудования. Вы можете получить доступ к информации, такой как текущее положение и ориентация датчика относительно дисплея с установленной на голове, через метод PositionSensorVRDevice.getState().

Методы экземпляра

PositionSensorVRDevice.getState() Устаревшее Нестандартное

Возвращает текущее состояние датчика положения для текущей кадровой области (например, в рамках текущего вызова window.requestAnimationFrame) или для предыдущей кадровой области, содержащейся в объекте VRPose. Это метод, который вы обычно хотите использовать, по сравнению с getImmediateState().

PositionSensorVRDevice.getImmediateState() Устаревшее Нестандартное

Возвращает текущее мгновенное состояние датчика положения. Это следует использовать редко, для определенных специальных применений, например, для выборки мгновенного положения датчика ориентации руки — или, по крайней мере, так это будет в будущем.

PositionSensorVRDevice.resetSensor() Устаревшее Нестандартное

Можно использовать для сброса датчика при необходимости, возвращая значения положения и ориентации к нулю.

Свойства экземпляра

Этот интерфейс не определяет собственных свойств, но наследует свойства своего родительского интерфейса, VRDisplay.

VRDisplay.displayId Только для чтения

Возвращает идентификатор для этого конкретного VRDevice. Идентификатор не должен меняться после перезагрузки браузера, что позволяет сохранять конфигурационные данные, основанные на нём.

VRDisplay.displayName Только для чтения

Человекочитаемое имя для идентификации VRDevice.

Примеры

Следующий пример использует API WebVR для обновления вида простой 2D-холста сцены в каждом кадре цикла requestAnimationFrame.

function setView() {
  const posState = gPositionSensor.getState();
  if (posState.hasPosition) {
    posPara.textContent = `Position: x${roundToTwo(
      posState.position.x,
    )} y${roundToTwo(posState.position.y)} z${roundToTwo(posState.position.z)}`;
    xPos = -posState.position.x * WIDTH * 2;
    yPos = posState.position.y * HEIGHT * 2;
    zPos = -posState.position.z > 0.01 ? -posState.position.z : 0.01;
  }

  if (posState.hasOrientation) {
    orientPara.textContent = `Orientation: x${roundToTwo(
      posState.orientation.x,
    )} y${roundToTwo(posState.orientation.y)} z${roundToTwo(
      posState.orientation.z,
    )}`;
    xOrient = posState.orientation.x * WIDTH;
    yOrient = -posState.orientation.y * HEIGHT * 2;
    zOrient = posState.orientation.z * 180;
  }
}

Здесь мы получаем объект VRPose с помощью PositionSensorVRDevice.getState() и сохраняем его в posState. Затем мы проверяем, присутствует ли информация о положении и ориентации в текущей кадровой области с помощью VRPose.position и VRPose.orientation (эти функции возвращают null если, например, дисплей с установленной на голове отключён или не направлен на датчик положения, что приведет к ошибке).

Затем мы выводим значения координат x, y и z положения и ориентации для информационных целей и используем эти значения для обновления переменных xPos, yPos, zPos, xOrient, yOrient, и zOrient , которые используются для обновления рендеринга сцены в каждом кадре.

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
PositionSensorVRDevice Нет Нет 39 Нет Нет Нет Нет Нет Нет Нет Нет
getImmediateState Нет Нет 39 Нет Нет Нет Нет Нет Нет Нет Нет
getState Нет Нет 39 Нет Нет Нет Нет Нет Нет Нет Нет
resetSensor Нет Нет 39 Нет Нет Нет Нет Нет Нет Нет Нет

См. также

  • API WebVR

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/PositionSensorVRDevice

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API