VRDisplay: getPose() 方法

已弃用:此特性不再推荐。虽然某些浏览器可能仍然支持它,但它可能已经从相关的网络标准中删除,可能正在删除过程中,或者可能仅为兼容性目的而保留。请避免使用它,如果可能,请更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此特性可能随时停止工作。

非标准:此特性未标准化。我们不建议在生产环境中使用非标准特性,因为它们浏览器支持有限,并且可能会更改或被移除。但是,在没有标准选项的特定情况下,它们可以是合适的替代方案。

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

注意:此方法是旧版 WebVR API 的一部分。它已被 WebXR Device 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();

      // …
    }
  });
}

然而,建议您使用 VRFrameData 对象(通过 VRDisplay.getFrameData() 检索)的非弃用 pose 属性,以在提交给显示器进行呈现之前检索每一帧的当前姿态。这发生在您应用的渲染循环的每次迭代中,因此您可以确信姿态数据是最新的。

规范

此方法是旧版 WebVR API 的一部分,已被 WebXR Device API 取代。它不再是标准化的方向。

在所有浏览器都实现新的 WebXR API 之前,建议依靠 A-FrameBabylon.jsThree.js 等框架,或 polyfill 来开发可在所有浏览器上运行的 WebXR 应用程序。有关更多信息,请阅读 Meta 的从 WebVR 移植到 WebXR 指南。

浏览器兼容性

另见