XRInputSourceEvent:frame 属性
只读的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 的浏览器中加载。