XRRay
XRRay
是WebXR 设备 API 的一个接口,它代表一个由原点和方向向量描述的几何射线。
XRRay
对象可以传递给XRSession.requestHitTestSource()
或XRSession.requestHitTestSourceForTransientInput()
以执行碰撞测试。
构造函数
XRRay()
实验性-
创建一个新的
XRRay
对象。
实例属性
XRRay.direction
只读 实验性-
一个
DOMPointReadOnly
,代表射线的 3 维方向向量。 XRRay.matrix
只读 实验性-
一个变换,可用于沿
XRRay
定位物体。这是一个 4x4 矩阵,以 16 个元素的Float32Array
表示,采用列主序。 XRRay.origin
只读 实验性-
一个
DOMPointReadOnly
,代表射线发出的空间中的 3 维点,以米为单位。
实例方法
无。
示例
使用 XRRay
请求碰撞测试源
XRSession.requestHitTestSource()
方法在其 offsetRay
选项中接受一个 XRRay
对象。在本例中,碰撞测试源的位置略高于观察者,因为应用程序在底部有一些 UI 元素,同时希望保持居中光标的感知。
js
const xrSession = navigator.xr.requestSession("immersive-ar", {
requiredFeatures: ["local", "hit-test"],
});
let hitTestSource = null;
xrSession
.requestHitTestSource({
space: viewerSpace, // obtained from xrSession.requestReferenceSpace("viewer");
offsetRay: new XRRay({ y: 0.5 }),
})
.then((viewerHitTestSource) => {
hitTestSource = viewerHitTestSource;
});
规范
规范 |
---|
WebXR 碰撞测试模块 # xrray-interface |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。