共用方式為


Unity 的輸入移植指南

您可以使用下列兩種方法之一,將您的輸入邏輯移植到Windows Mixed Reality:

一般 Input.GetButton 和 Input.GetAxis API

Unity 目前會使用其一般 Input.GetButtonInput.GetAxis API 來公開 SDKOpenVR SDK的輸入。 如果您的應用程式已經使用這些 API 進行輸入,這些 API 是支援Windows Mixed Reality中動作控制器的最簡單路徑。 您只需要在輸入管理員中重新對應按鈕和軸。

如需詳細資訊,請參閱 Unity 按鈕/軸對應表通用 Unity API的概觀。

重要

如果您使用 HP Reverb G2 控制器,請參閱 Unity 中的 HP Reverb G2 控制器 以取得進一步的輸入對應指示。

XR 輸入 API

Unity 版本已淘汰 XR。WSA API 支援 XR SDK。 針對新專案,最好從頭開始使用 XR 輸入 API。 如需詳細資訊,請參閱 Unity XR 輸入

如果您的應用程式已經為每個平臺建置自訂輸入邏輯,您可以在 UnityEngine.InputSystem.XR 命名空間中使用 Windows 特定的空間輸入 API。 這些 API 可讓您存取詳細資訊,例如位置精確度或來源種類,以在 HoloLens 上區分手部和控制器。

注意

如果您使用 HP Reverb G2 控制器,則除了 之外,所有輸入 API 都會繼續運作,但 InteractionSource.supportsTouchpad 不會傳回 false 且沒有觸控板資料。

底框姿勢和指標姿勢

Windows Mixed Reality支援不同尺寸的動作控制器。 每個控制器的設計在使用者手部位置與應用程式在轉譯控制器時用於指向的自然正向方向之間有差異。

若要更妥善地代表這些控制器,您可以調查每個互動來源的兩種姿勢、 底框姿勢指標姿勢。 您會在 Unity 全局座標中表達所有姿勢座標。

底框姿勢

手部姿勢代表 HoloLens 偵測到手部的手部位置,或手部按住動作控制器的手部位置。 在沉浸式頭戴式裝置上,使用此姿勢來轉譯使用者手部或使用者手上持有的物件,例如文字或射擊。

  • 在自然地按住控制器時, 控點位置 是手掌心,靠左或向右調整,以置中控夾內的位置。
  • 底框方向的右軸是一般光線,從左手部往前向右手部向後向右手部,當您完全開啟手部以形成一般五指姿勢時。
  • 底框方向的正向軸是光線,當您部分關閉手部時,指向由非指指所形成之管的正向光線,就像是按住控制器一樣。
  • 底線方向的上軸是右方和向前定義所隱含的向上軸。

透過 Unity 的 XR 存取底框姿勢 。InputTracking.GetNodeStates API,例如 XRNodeState.TryGetPositionXRNodeState.TryGetRotation

指標姿勢

指標姿勢代表指向正向的控制器提示。 當您轉譯控制器模型本身時,這個姿勢最適合用於指向 UI 的光線轉換。

指標姿勢只能在 Unity 中透過 Windows MR 特定 API 取得, sourceState.sourcePose.TryGetPosition/Rotation 並傳入 InteractionSourceNode.Pointer 作為引數。

另請參閱