XRHandedness - 标识用户使用哪只手来操作 XR 输入控制器的枚举值
XRHandedness
是 WebXR 的枚举类型,提供了一些值,这些值标识正在使用用户的哪只手来操作所用 XR 输入设备的特定输入控制器。XRHandedness
用作 XRInputSource
的 handedness
属性的值。
值
none
输入控制器未与用户的手相关联。
left
输入控制器被握住,佩戴在用户的左手上或固定在用户的左手上。
right
输入控制器被握住,佩戴在用户的右手上或固定在用户的右手上。
实例
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);
}
}
}
}
此函数将在每个动画帧中调用时(或可能只是周期性地调用,具体取决于所需的平滑度和性能限制),它会扫描输入源列表,以查找不是 null
的 gripSpace
。如果存在 gripSpace
,则表示输入源是某种形式的手持设备,因此,如果可能,应将其渲染出来。
如果 gripSpace
不是 null
,则函数继续进行操作以获取将 gripSpace
的姿势转换为当前参考空间。假设这是有效的,那么将使用握点的姿势和 handedness
的值调用名为 myRenderHandObject()
的函数。有了这些值,gripSpace
可以绘制正确的模型,以放置和显示正确的手。
规范
规范 | 状态 | 备注 |
---|---|---|
WebXR Device API XRHandedness 的定义 |
工作草案 | 初始定义。 |
桌面浏览器兼容性
暂无兼容数据
相关链接
- WebXR 设备 API
- 输入和输入源
- 在 WebXR 应用程序中使用游戏手柄
XREye
:指示应该显示视图的眼睛