XRInputSource

安全上下文:此功能仅在安全上下文(HTTPS)中可用,并且在某些或所有支持的浏览器中可用。

WebXR 设备 APIXRInputSource接口描述了用户 WebXR 兼容的虚拟或增强现实系统中的单个控制输入源。该设备特定于正在使用的平台,但提供其指向的方向,并且如果用户使用该设备触发执行操作,则可以选择生成事件。

实例属性

gamepad 只读

一个Gamepad对象,描述 XR 输入源上按钮和轴的状态,如果它是游戏手柄或类似设备。如果设备不是类似游戏手柄的设备,则此属性的值为null

gripSpace 只读

一个XRSpace,其原点跟踪用于渲染应显示为好像被handedness指示的手握住的对象的姿势。此空间的方向指示手握住物体时的角度。在关于gripSpace的主要文章中继续阅读,以获取有关如何使用此空间的更多详细信息。

hand 只读

一个XRHand对象,提供对底层手部跟踪设备的访问。

handedness 只读

一个字符串,指示此XRInputSource表示的设备正在使用的哪只手(如果有)。该值将为leftrightnone

profiles 只读

一个字符串数组,每个字符串指定一个输入配置文件的名称,该配置文件描述此输入源的首选视觉表示和行为。

targetRayMode 只读

一个字符串,指示用于生成目标光线的方案:gazetracked-pointerscreen

targetRaySpace 只读

一个XRSpace对象,定义目标光线的原点及其延伸的方向。此空间是使用targetRayMode定义的方法建立的。

实例方法

XRInputSource接口未定义任何方法。

使用说明

动作和目标光线

如果设备提供了其指向方向的指示,则使用目标光线进行。这是一条从设备位置向外延伸的光线,指向其指向的方向。

手动控制器发出的目标光线。

A screenshot showing a target ray being emitted by a hand controller

如果设备包含触发器或其他可挤压的输入,例如识别用户何时握紧拳头的手势设备,则该动作称为主要挤压动作。主要挤压动作应对应于现实中的抓握动作,例如抓住物体或按下工具或武器上的触发器。当挤压动作开始时,例如用户按下触发器或握紧拳头,squeezestart事件将发送到XRSession。一旦动作完成并且用户释放触发器或握紧拳头,就会发送squeeze事件。接下来是squeezeend,如果操作中止而不是完成,也会发送此事件。

如果设备具有按钮或其他可按压的输入控件,则它是主要输入源,并且此按钮是主要动作。当用户按下按钮、点击触控板或拇指摇杆的顶部按钮,或使用手势或语音命令调用类似按钮的动作时,可能会发生主要动作。当主要动作开始时,selectstart事件将发送到XRSession。当动作完成(例如用户释放按钮时),将发送select事件。最后,一旦完成此操作——或者如果用户中止了操作——selectend事件将发送到会话对象。

动作可能会被用户以某种设备特定的方式中止,或者如果输入设备在动作完成前断开连接。

局部坐标系

每个输入源都有自己的局部坐标系,由gripSpace属性描述,该属性是一个XRSpace,用于将输入的坐标系映射到世界坐标系。然后,可以使用抓握空间的坐标系来渲染对象,以便它们看起来像是被用户的手握住的。

A diagram showing the coordinate system defined by the gripSpace property

有关输入源坐标系的更多详细信息,请参阅详细介绍gripSpace属性的文章。

规范

规范
WebXR 设备 API
# xrinputsource-interface

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅