XRFrame: getJointPose() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

XRFrame 接口的 getJointPose() 方法返回一个 XRJointPose 对象,该对象提供相对于给定基空间的手部关节(参见 XRHand)的姿态。

语法

js
getJointPose(joint, baseSpace)

参数

joint

一个 XRJointSpace,用于指定要获取 XRJointPose 的手部关节空间,该 XRJointPose 描述了该物品的位置和方向。

baseSpace

一个 XRSpace,用作相对位置和方向的基准或原点。

返回值

一个 XRJointPose 对象,指定手部关节相对于 baseSpace 指示的 XRSpace 的位置和方向。

示例

使用 getJointPose()

使用 XRJointSpaceXRReferenceSpace 调用 getJointPose() 以获取 XRJointPose 对象。

js
navigator.xr
  .requestSession({ optionalFeatures: ["hand-tracking"] })
  .then(/* … */);

function renderFrame(session, frame) {
  // …

  for (const inputSource of session.inputSources) {
    if (inputSource.hand) {
      const indexFingerTipJoint = inputSource.hand.get("index-finger-tip");
      frame.getJointPose(indexFingerTipJoint, referenceSpace); // XRJointPose
    }
  }
}

规范

规范
WebXR Hand Input 模块 - Level 1
# dom-xrframe-getjointpose

浏览器兼容性

另见