共用方式為


Unity 輸入移植指南

你可以透過以下兩種方式之一,將輸入邏輯移植到 Windows Mixed Reality:

一般 Input.GetButton 與 Input.GetAxis API

Unity 目前使用其 general Input.GetButtonInput.GetAxis API 來暴露 Oculus SDKOpenVR SDK 的輸入。 如果你的應用程式已經使用這些 API 作為輸入,這些 API 是支援 Windows Mixed Reality 動作控制器最簡單的途徑。 你只需要在輸入管理器裡重新映射按鈕和軸。

欲了解更多資訊,請參閱 Unity 按鈕/軸映射表Common 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 控制器,除了 InteractionSource.supportsTouchpad之外,所有輸入 API 都還能正常運作,因為 ,該 回傳 false,且沒有觸控板資料。

握握式與指示式

Windows Mixed Reality 支援不同形態的動作控制器。 每個控制器的設計在使用者手部位置與應用程式渲染控制器時所使用的自然前方指向之間的關係上有所不同。

為了更好地呈現這些控制器,你可以針對每個互動來源研究兩種姿勢: 握持姿勢指標姿勢。 你用 Unity 世界座標來表達所有姿勢座標。

握法姿勢

握把姿勢代表被全息鏡頭偵測到的手掌位置,或是握著動作控制器的手掌位置。 在沉浸式頭戴裝置上,使用此姿勢來呈現使用者的手或手中持有的物品,如劍或槍。

  • 握把位置是自然握持控制器時的手掌重心,並向左或向右調整以使握把中的位置居中。
  • 握法的右軸是當你完全打開手掌形成平坦五指姿勢時,從左手掌向前、從右手掌向後的光線。
  • 握把方向的前軸是當你部分握緊手掌時,透過非拇指手指形成的管子指向前方的光線。
  • 握把方向的上軸即為右側與前方定義所暗示的上軸。

透過 Unity 的 XR 來取得握力姿勢 。InputTracking.GetNodeStates API 如 XRNodeState.TryGetPositionXRNodeState.TryGetRotation

指標姿勢

指標姿勢代表控制器尖端朝前。 這個姿勢最適合用來在渲染控制器模型時,用光線投射指向 UI。

指標姿勢僅能透過 Windows MR 專用 API 在 Unity 中使用,該sourceState.sourcePose.TryGetPosition/Rotation參數作為參數傳遞。InteractionSourceNode.Pointer

另請參閱