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

瀏覽器相容性