輸入動作 — MRTK2

輸入動作 是原始輸入的抽象概念,用來協助隔離應用程式邏輯與產生輸入的特定輸入來源。 例如,定義 Select 動作,並將其對應至滑鼠左鍵、遊戲台中的按鈕,以及 6 DOF 控制器中的觸發程式,這非常有用。 然後,您可以讓應用程式邏輯接聽 [選取 輸入動作事件],而不需注意可以產生它的所有不同輸入。

建立輸入動作

輸入動作是在[輸入動作設定檔] 中,在 [Mixed Reality工具組] 元件中的[輸入系統設定檔] 中設定,並指定動作的名稱,以及 (軸條件約束) 輸入類型) 可以對應至:

輸入動作

這些是座標 軸條件約束最常使用的值:

軸條件約束 描述
Digital 開啟/關閉輸入,例如遊戲台或滑鼠中的二進位按鈕。
單一軸 單軸類比輸入,例如遊戲台中的類比觸發程式。
雙軸 雙軸類比輸入,例如搖桿。
六個 Dof 3D 姿勢具有翻譯和旋轉,就像 6 個 DOF 控制器所產生的一樣。

您可以在 中找到 AxisType 完整清單。

將輸入對應至動作

將輸入對應至 和 動作的方式取決於輸入來源的類型:

控制器輸入

移至[輸入系統設定檔] 底下的[控制器輸入對應設定檔]。 您可以在該處找到所有支援的控制器清單:

輸入對應設定檔

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

輸入動作指派

語音輸入

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

語音命令設定檔

手勢輸入

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

手勢設定檔

處理輸入動作

警告

目前只能使用本節所述的方法來處理 Digital 類型的輸入動作。 針對其他動作類型,您必須改為直接處理對應輸入的事件。 例如,若要處理對應至控制器輸入的 6 個 DOF 動作,您必須搭配 T = MixedRealityPose 使用 IMixedRealityGestureHandler<T>

處理輸入動作最簡單的方式是使用 InputActionHandler 腳本。 這可讓您定義您想要接聽的動作,並使用 Unity 事件回應已啟動和結束事件的動作。

Acton 處理常式

如果您想要更多控制,您可以直接在腳本中實 IMixedRealityInputActionHandler 作 介面。 如需透過處理常式介面處理事件的詳細資訊,請參閱 輸入事件 一節。

範例

如需 MRTK/Examples/Demos/Input/Scenes/InputActions 範例場景,其中顯示如何建立動作、將動作對應至控制器、語音和手勢輸入,並用它來在命令上旋轉物件。

輸入動作範例