為各種板型規格 (包括摺疊式裝置、平板電腦和大螢幕) 開發 Android 遊戲時,玩家通常會連接外部控制器或遊戲手把。如果 UI 畫面原本是為觸控或滑鼠互動而設計,使用控制器瀏覽選單可能會很困難。
雖然圍繞標準 D-Pad 導覽功能重新設計 UI 架構,通常能提供更優質的使用者體驗,但對於現有專案來說,這可能並非總是可行。此外,Unity 輸入系統也提供 VirtualMouseInput 元件。這個元件可讓您使用已連線的遊戲手把或控制器,在畫面上操控虛擬軟體游標。
關於 VirtualMouseInput
VirtualMouseInput 元件是 Unity 輸入系統套件中的高階公用程式,可將遊戲手把輸入內容橋接至螢幕上的游標控制項、UI 指標互動和模擬觸控螢幕事件。啟用後,這項功能會:
- 建立虛擬滑鼠裝置:在 Unity 輸入系統中,與任何實體指標裝置一起註冊軟體模擬的滑鼠。
- 將遊戲手把控制項對應至游標動作:你可以將類比搖桿或方向鍵繫結至游標,在畫面上移動游標,並將控制器按鈕 (例如「南」/「A」按鈕) 對應至滑鼠左鍵、右鍵或中鍵點擊。
- 整合 Unity UI:與
InputSystemUIInputModule無縫整合,標準 UI 元素 (例如按鈕、切換鈕和滑桿) 會回應虛擬游標,就像回應硬體滑鼠或觸控互動一樣。 - 驅動視覺游標:您可以指派 UI
Graphic(例如Image元件),自動追蹤並轉譯虛擬游標在畫面上的位置。
將虛擬滑鼠與 TouchSimulation 結合
如果遊戲原本專為觸控螢幕設計,並採用直接觸控指令碼或 API,虛擬滑鼠不會自動觸發現有的觸控偵測邏輯,因為系統會將虛擬滑鼠註冊為滑鼠裝置,而非觸控螢幕裝置。
如要支援遊戲手把驅動的游標互動,而不必重寫舊版觸控處理程式碼,可以搭配 VirtualMouseInput 使用 Unity Input System 的 TouchSimulation 功能:
- 運作方式:使用
TouchSimulation.Enable()啟用後,輸入系統會自動將任何有效滑鼠裝置 (包括VirtualMouseInput建立的軟體模擬滑鼠) 的點擊和指標移動,轉換為模擬觸控螢幕事件。 - 產生的資料流程:遊戲手把搖桿和按鈕的互動會驅動虛擬滑鼠,然後
TouchSimulation轉換為單點觸控事件 (Touchscreen)。現有的觸控偵測指令碼可以順暢處理這些事件,不必修改程式碼。 - 注意事項:
TouchSimulation僅限於模擬單點觸控指標。如果遊戲需要使用複雜的多點觸控手勢 (例如雙指撥動縮放或雙指旋轉),請務必為遊戲手把控制項設定專屬的輸入動作繫結。
如需完整的技術詳細資料、屬性和使用說明文件,請參閱官方 UnityEngine.InputSystem.UI.VirtualMouseInput 和 UnityEngine.InputSystem.EnhancedTouch.TouchSimulation 指令碼參考資料。