Threejs WebXR控制器检测手

Threejs WebXR controller detect hand

首先,我完全是 three.js 的菜鸟,目前正在努力检测控制器的手。我想实现这样的目标:

for (let i = 0; i < 2; ++i) {
  const controller = renderer.xr.getController(i);
  console.debug(controller.hand); // 'left', 'right' ??
  scene.add(controller);
} 

最好的方法是什么?

您可以使用 XRInputSource.handedness。来自 specification:

The handedness attribute describes which hand the XR input source is associated with, if any.

three.js中,输入源映射到控制器。这意味着您可以像这样评估惯用手:

controller.addEventListener( 'connected', ( event ) => {

    console.log( event.data.handedness );

} );

three.js r116