XRPose: transform 属性

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

XRPose 接口的只读属性 transform 是一个 XRRigidTransform 对象,它提供了姿势相对于基准 XRSpace 的位置和方向,这是通过调用 XRFrame.getPose() 获取姿势时指定的。

一个 XRRigidTransform 对象,它提供了 XRPose 相对于此 XRPose 所对齐的 XRFrame 的位置和方向。这与帧的 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 Device API
# dom-xrpose-transform

浏览器兼容性