XRInputSourceEvent:frame 属性

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

只读的XRInputSourceEvent属性frame指定一个XRFrame对象,该对象表示发生WebXR用户输入的事件帧。因此,这可能是过去发生的事件,而不是当前或即将发生的事件。

一个XRFrame,指示对象描述的用户输入事件发生的事件帧。

使用说明

事件帧不对应于传递到帧渲染回调函数的可视帧(有关回调的详细信息,请参阅渲染和 WebXR 帧渲染回调)。相反,frame属性指定的XRFrame是一种提供对getPose()方法的访问的方法,您可以使用该方法获取事件发生时场景中对象的相对位置。

但是,由于事件帧不是动画帧,因此没有可用的查看器姿势来表示查看器的当前视角;调用getViewerPose()的结果将是一个XRViewerPose,其中包含一个空的views列表。

示例

此代码显示了selectstart事件的处理程序,该处理程序从帧中获取目标射线的姿势,将表示射线的姿势(event.inputSource.targetRaySpace)映射到整体参考空间myRefSpace

然后,如果结果不是null,则将目标射线姿势的变换传递给名为myCheckAndHandleHit()的函数,以查看触发选择时射线是否指向任何内容。

js
xrSession.onselectstart = (event) => {
  let targetRayPose = event.frame.getPose(
    event.inputSource.targetRaySpace,
    myRefSpace,
  );
  if (targetRayPose) {
    checkAndHandleHit(targetRayPose.transform);
  }
};

规范

规范
WebXR 设备 API
# dom-xrinputsourceevent-frame

浏览器兼容性

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