XRInputSourceEvent
该WebXR 设备 API的XRInputSourceEvent
接口描述了一个在 WebXR 用户输入设备(例如手柄控制器、注视跟踪系统或运动跟踪系统)上发生的事件。更具体地说,它们表示XRInputSource
状态的改变。
要了解有关在 WebXR 项目中处理输入的更多信息,请参阅文章输入和输入源。
构造函数
XRInputSourceEvent()
-
创建并返回一个新的
XRInputSourceEvent
对象,其属性与提供的eventInitDict
字典中提供的属性匹配。
实例属性
frame
只读-
一个
XRFrame
对象,提供有关事件发生期间事件帧所需的信息。此帧可能已在过去渲染,而不是当前帧。因为这是一个事件帧,而不是动画帧,所以您不能在上面调用XRFrame
方法getViewerPose()
;而是使用getPose()
。 inputSource
只读-
一个
XRInputSource
对象,指示哪个输入源生成了输入事件。
实例方法
XRInputSourceEvent
接口没有定义任何方法;但是,从父接口Event
继承了一些方法。
事件类型
select
selectend
selectstart
-
发送到
XRSession
,当输入源开始其主要操作时,表示用户已开始类似命令的输入,例如按下触发器或按钮、发出语音命令、轻触触控板等。 squeeze
squeezeend
squeezestart
示例
下面的代码设置了主要操作事件的处理程序,以便确定用户何时在场景中单击(射击/戳/无论什么)对象。
js
xrSession.addEventListener("select", (event) => {
let targetRayPose = event.frame.getPose(
event.inputSource.targetRaySpace,
myRefSpace,
);
if (targetRayPose) {
let hit = myHitTest(targetRayPose.transform);
if (hit) {
/* handle the hit */
}
}
});
规范
规范 |
---|
WebXR 设备 API # xrinputsourceevent-interface |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。