XRHandedness - 标识用户使用哪只手来操作 XR 输入控制器的枚举值

XRHandedness 是 WebXR 的枚举类型,提供了一些值,这些值标识正在使用用户的哪只手来操作所用 XR 输入设备的特定输入控制器。XRHandedness 用作 XRInputSourcehandedness 属性的值。

none

输入控制器未与用户的手相关联。

left

输入控制器被握住,佩戴在用户的左手上或固定在用户的左手上。

输入控制器被握住,佩戴在用户的右手上或固定在用户的右手上。

实例

handedness 的一个重要使用场景是确定控制器在哪只手上,以便您可以在虚拟空间中绘制该一只手(或该手正在控制的设备)。

function updateInputSources(session, frame, refSpace) {
  for (let source of session.inputSources) {
    if (source.gripSpace) {
      let gripPose = frame.getPose(source.gripSpace, refSpace);

      if (gripPose) {
        myRenderHandObject(gripPose, inputSource.handedness);
      }
    }
  }
}

此函数将在每个动画帧中调用时(或可能只是周期性地调用,具体取决于所需的平滑度和性能限制),它会扫描输入源列表,以查找不是 nullgripSpace。如果存在 gripSpace,则表示输入源是某种形式的手持设备,因此,如果可能,应将其渲染出来。

如果 gripSpace 不是 null,则函数继续进行操作以获取将 gripSpace 的姿势转换为当前参考空间。假设这是有效的,那么将使用握点的姿势和 handedness 的值调用名为 myRenderHandObject() 的函数。有了这些值,gripSpace 可以绘制正确的模型,以放置和显示正确的手。

规范

规范 状态 备注
WebXR Device API
XRHandedness 的定义
工作草案 初始定义。

桌面浏览器兼容性

暂无兼容数据

相关链接