VRDisplay: getPose() 方法

已弃用:此功能不再推荐。虽然某些浏览器可能仍然支持它,但它可能已被从相关的 Web 标准中删除,可能正在被删除,或者可能只是为了兼容性而保留。避免使用它,并尽可能更新现有代码;请参见此页面底部的兼容性表,以指导您的决策。请注意,此功能可能随时停止工作。

非标准:此功能是非标准的,而且不在标准跟踪中。请勿在面向 Web 的生产网站上使用它:它不会适用于所有用户。实现之间也可能存在很大的不兼容性,并且行为在将来可能会发生变化。

VRDisplay 接口的 getPose() 方法返回一个 VRPose 对象,该对象定义了 VRDisplay 的未来预测姿态,它将在当前帧实际呈现时出现。

注意:此方法是旧版 WebVR API 的一部分。它已被 WebXR 设备 API 取代。

它甚至在那里被弃用 - 相反,您应该使用 VRDisplay.getFrameData(),它也提供了一个 VRPose 对象。

语法

js
getPose()

参数

无。

返回值

一个 VRPose 对象。

示例

一旦我们获得了对 VRDisplay 对象的引用,我们就可以检索表示显示器当前姿势的 VRPose

js
if (navigator.getVRDisplays) {
  console.log("WebVR 1.1 supported");
  // Then get the displays attached to the computer
  navigator.getVRDisplays().then((displays) => {
    // If a display is available, use it to present the scene
    if (displays.length > 0) {
      vrDisplay = displays[0];
      console.log("Display found");

      // Return the current VRPose object for the display
      const pose = vrDisplay.getPose();

      // …
    }
  });
}

但是,建议您在将每一帧提交给显示器进行呈现之前,使用 pose 属性(通过 VRDisplay.getFrameData() 检索)来检索每一帧的当前姿势。这在应用程序渲染循环的每次迭代中都会发生,因此您可以确保姿势数据是最新的。

规范

此方法是旧版 WebVR API 的一部分,该 API 已被 WebXR 设备 API 取代。它不再处于成为标准的轨道上。

在所有浏览器都实现了新的 WebXR API 之前,建议依靠框架,如 A-FrameBabylon.jsThree.js,或者一个 polyfill,来开发可在所有浏览器中运行的 WebXR 应用程序 [1]

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅