XRInputSource
WebXR 设备 API的XRInputSource
接口描述了用户 WebXR 兼容的虚拟或增强现实系统中的单个控制输入源。该设备特定于正在使用的平台,但提供其指向的方向,并且如果用户使用该设备触发执行操作,则可以选择生成事件。
实例属性
gamepad
只读-
一个
Gamepad
对象,描述 XR 输入源上按钮和轴的状态,如果它是游戏手柄或类似设备。如果设备不是类似游戏手柄的设备,则此属性的值为null
。 gripSpace
只读-
一个
XRSpace
,其原点跟踪用于渲染应显示为好像被handedness
指示的手握住的对象的姿势。此空间的方向指示手握住物体时的角度。在关于gripSpace
的主要文章中继续阅读,以获取有关如何使用此空间的更多详细信息。 hand
只读-
一个
XRHand
对象,提供对底层手部跟踪设备的访问。 handedness
只读-
一个字符串,指示此
XRInputSource
表示的设备正在使用的哪只手(如果有)。该值将为left
、right
或none
。 profiles
只读-
一个字符串数组,每个字符串指定一个输入配置文件的名称,该配置文件描述此输入源的首选视觉表示和行为。
targetRayMode
只读-
一个字符串,指示用于生成目标光线的方案:
gaze
、tracked-pointer
或screen
。 targetRaySpace
只读-
一个
XRSpace
对象,定义目标光线的原点及其延伸的方向。此空间是使用targetRayMode
定义的方法建立的。
实例方法
XRInputSource
接口未定义任何方法。
使用说明
动作和目标光线
如果设备提供了其指向方向的指示,则使用目标光线进行。这是一条从设备位置向外延伸的光线,指向其指向的方向。
手动控制器发出的目标光线。
如果设备包含触发器或其他可挤压的输入,例如识别用户何时握紧拳头的手势设备,则该动作称为主要挤压动作。主要挤压动作应对应于现实中的抓握动作,例如抓住物体或按下工具或武器上的触发器。当挤压动作开始时,例如用户按下触发器或握紧拳头,squeezestart
事件将发送到XRSession
。一旦动作完成并且用户释放触发器或握紧拳头,就会发送squeeze
事件。接下来是squeezeend
,如果操作中止而不是完成,也会发送此事件。
如果设备具有按钮或其他可按压的输入控件,则它是主要输入源,并且此按钮是主要动作。当用户按下按钮、点击触控板或拇指摇杆的顶部按钮,或使用手势或语音命令调用类似按钮的动作时,可能会发生主要动作。当主要动作开始时,selectstart
事件将发送到XRSession
。当动作完成(例如用户释放按钮时),将发送select
事件。最后,一旦完成此操作——或者如果用户中止了操作——selectend
事件将发送到会话对象。
动作可能会被用户以某种设备特定的方式中止,或者如果输入设备在动作完成前断开连接。
局部坐标系
规范
规范 |
---|
WebXR 设备 API # xrinputsource-interface |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。