XRPose:transform 属性

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

transformXRPose 接口的只读属性,它是一个 XRRigidTransform 对象,它提供姿势相对于基准 XRSpace 的位置和方向,如调用 XRFrame.getPose() 获取姿势时所指定的那样。

一个 XRRigidTransform,它提供 XRPose 相对于 XRFrame 的位置和方向,该 XRFrame 与此 XRPose 对齐。这与框架的 getPose() 方法返回的姿势相同。

示例

XRSession 事件的处理程序 select 处理跟踪指针的事件。它通过将事件帧的姿势传递给名为 findTargetUsingRay() 的函数来确定目标对象,然后根据用户的惯用手性以不同的方式调度事件;这是通过将 XRInputSource 属性 handedness 的值与变量 user.handedness 中的值进行比较来完成的。如果源是用户主要手中的控制器,则会调用目标对象上的名为 primaryAction() 的函数;否则,它会调用目标对象的 offHandAction() 函数。

js
xrSession.addEventListener("select", (event) => {
  let source = event.inputSource;
  let frame = event.frame;
  let targetRayPose = frame.getPose(source.targetRaySpace, myRefSpace);
  let targetObject = findTargetUsingRay(targetRay.transform.matrix);

  if (source.targetRayMode === "tracked-pointer") {
    if (source.handedness === user.handedness) {
      targetObject.primaryAction();
    } else {
      targetObject.offHandAction();
    }
  }
});

规范

规范
WebXR 设备 API
# dom-xrpose-transform

浏览器兼容性

BCD 表仅在浏览器中加载