輸入動作 — MRTK2
輸入動作 是原始輸入的抽象概念,用來協助隔離應用程式邏輯與產生輸入的特定輸入來源。 例如,定義 Select 動作,並將其對應至滑鼠左鍵、遊戲台中的按鈕,以及 6 DOF 控制器中的觸發程式,這非常有用。 然後,您可以讓應用程式邏輯接聽 [選取 輸入動作事件],而不需注意可以產生它的所有不同輸入。
建立輸入動作
輸入動作是在[輸入動作設定檔] 中,在 [Mixed Reality工具組] 元件中的[輸入系統設定檔] 中設定,並指定動作的名稱,以及 (軸條件約束) 輸入類型) 可以對應至:

這些是座標 軸條件約束最常使用的值:
軸條件約束 | 描述 |
---|---|
Digital | 開啟/關閉輸入,例如遊戲台或滑鼠中的二進位按鈕。 |
單一軸 | 單軸類比輸入,例如遊戲台中的類比觸發程式。 |
雙軸 | 雙軸類比輸入,例如搖桿。 |
六個 Dof | 3D 姿勢具有翻譯和旋轉,就像 6 個 DOF 控制器所產生的一樣。 |
您可以在 中找到 AxisType
完整清單。
將輸入對應至動作
將輸入對應至 和 動作的方式取決於輸入來源的類型:
控制器輸入
移至[輸入系統設定檔] 底下的[控制器輸入對應設定檔]。 您可以在該處找到所有支援的控制器清單:

選取您想要設定的視窗,並顯示具有所有控制器輸入的對話方塊視窗,可讓您為每個輸入設定動作:

語音輸入
在 語音命令設定檔的 [輸入系統設定檔] 底下,您會發現目前定義的語音命令清單。 若要將其中一個對應至動作,只要在 [ 動作 ] 下拉式清單中選取它即可。

手勢輸入
[筆勢設定檔] 位於[輸入系統設定檔] 底下,包含所有已定義的手勢。 您可以在 [ 動作 ] 下拉式清單中選取動作,將其對應至動作。

處理輸入動作
警告
目前只能使用本節所述的方法來處理 Digital 類型的輸入動作。 針對其他動作類型,您必須改為直接處理對應輸入的事件。 例如,若要處理對應至控制器輸入的 6 個 DOF 動作,您必須搭配 T = MixedRealityPose
使用 IMixedRealityGestureHandler<T>
。
處理輸入動作最簡單的方式是使用 InputActionHandler
腳本。 這可讓您定義您想要接聽的動作,並使用 Unity 事件回應已啟動和結束事件的動作。

如果您想要更多控制,您可以直接在腳本中實 IMixedRealityInputActionHandler
作 介面。 如需透過處理常式介面處理事件的詳細資訊,請參閱 輸入事件 一節。
範例
如需 MRTK/Examples/Demos/Input/Scenes/InputActions
範例場景,其中顯示如何建立動作、將動作對應至控制器、語音和手勢輸入,並用它來在命令上旋轉物件。
