值
一个字符串,指示输入控制器是握在用户的手中,如果是,则指示是哪只手。该值是以下之一:
用法说明
如果输入源不是与用户的手(无论是通过握持、附着还是佩戴)相关联的设备,则 handedness 的值为 none。例如,这可能表示一个非手持的输入源,比如头显内置的控件,或者附着在头部或身体上的输入设备。
示例
handedness 的一个重要使用场景是确定控制器在哪只手中,以便您可以在虚拟空间中绘制该手(或该手正在控制的设备)的表示。
js
function updateInputSources(session, frame, refSpace) {
for (const source of session.inputSources) {
if (source.gripSpace) {
const gripPose = frame.getPose(source.gripSpace, refSpace);
if (gripPose) {
myRenderHandObject(gripPose, inputSource.handedness);
}
}
}
}
此函数将在每个动画帧(或可能仅定期,取决于所需的平滑度以及任何性能限制)被调用,它会扫描输入源列表,查找任何具有非 null gripSpace 的输入源。如果存在 gripSpace,则表示该输入源是某种手持设备,因此应尽可能可见地进行渲染。
如果 gripSpace 非 null,该函数将继续获取 gripSpace 转换到当前参考空间中的姿势。假设该姿势有效,则会调用一个名为 myRenderHandObject() 的函数,并传入握持器的姿势以及 handedness 的值。然后,它会以正确的手部姿势和形状绘制相应的模型。
规范
| 规范 |
|---|
| WebXR Device API # dom-xrinputsource-handedness |
浏览器兼容性
加载中…