PositionSensorVRDevice: метод getState()
Устаревшее: Эта функция больше не рекомендуется. Хотя некоторые браузеры могут её поддерживать, она, возможно, уже удалена из соответствующих веб-стандартов, находится в процессе удаления или поддерживается только для совместимости. Избегайте её использования и, если возможно, обновите существующий код; обратитесь к таблице совместимости внизу этой страницы, чтобы принять решение. Помните, что эта функция может перестать работать в любое время.
Нестандартная: Эта функция нестандартна и не поддерживается стандартами. Не используйте её на сайтах, ориентированных на веб, в продакшене: она не будет работать для всех пользователей. Также могут быть значительные различия в реализации и поведении в будущем.
Метод getState() интерфейса PositionSensorVRDevice возвращает текущее состояние датчика положения для текущей кадра (например, в рамках текущего вызова window.requestAnimationFrame) или для предыдущего кадра, содержащегося в объекте VRPose. Это метод, который обычно нужно использовать, а не PositionSensorVRDevice.getImmediateState.
Синтаксис
getState()
Параметры
Нет.
Возвращаемое значение
Объект VRPose.
Примеры
В следующем примере используется API WebVR для обновления отображения простой сцены CanvasRenderingContext2D в каждом кадре цикла 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 с помощью getState() и сохраняем его в posState. Затем мы проверяем, присутствует ли информация о положении и ориентации в текущем кадре, используя VRPose.position и VRPose.orientation (эти функции возвращают null, если, например, шлем виртуальной реальности выключен или не нацелен на датчик положения, что вызовет ошибку).
Затем мы выводим значения координат x, y и z положения и ориентации для информационных целей и используем эти значения для обновления переменных xPos, yPos, zPos, xOrient, yOrient, и zOrient, которые используются для обновления рендеринга сцены в каждом кадре.
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
getState |
Нет | Нет | 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/getState