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 | Нет | Нет | Нет | Нет | Нет | Нет | Нет | Нет |
См. также
© 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