

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 滑鼠移動處理
<a name="sdk-mouse-movement"></a>

滑鼠移動處理對於在串流應用程式中提供反應靈敏且直覺式的使用者體驗至關重要。Amazon GameLift Streams 會根據您應用程式的游標行為自動最佳化滑鼠輸入傳輸，確保無論游標隱藏或可見，滑鼠移動都會感覺自然。了解 Amazon GameLift Streams 如何處理滑鼠事件，可協助您設計與串流服務無縫搭配的應用程式，並提供最佳的使用者體驗。

## 滑鼠輸入模式
<a name="sdk-mouse-input-modes"></a>

Amazon GameLift Streams 使用兩種不同的模式將滑鼠事件傳輸到您的應用程式，並根據游標可見性自動選取適當的模式：

相對模式  
在相對模式中，滑鼠更新會以與上一個位置的小型增量差異傳輸。此模式非常適合需要精確、持續滑鼠移動追蹤的應用程式，例如第一人稱射擊遊戲 (FPS) 或使用 3D 方向的界面。當作業系統游標隱藏或完全透明時，Amazon GameLift Streams 會使用相對模式。

絕對模式  
在絕對模式中，滑鼠游標位置會以確切的畫面座標傳輸。此模式非常適合依賴精確游標定位的應用程式，例如point-and-click或任何具有可點選元素的 UI。Amazon GameLift Streams 會在作業系統游標可見時使用絕對模式，即使您的應用程式顯示自訂游標影像。

此自動選擇可確保不同應用程式類型的最佳效能，而不需要手動設定。

## 指標鎖定
<a name="sdk-pointer-lock"></a>

指標鎖定是一種 Web API 功能，可擷取特定元素內的滑鼠游標，隱藏游標並防止游標離開指定區域。此功能對於需要不受限制的滑鼠移動以進行相機控制或瞄準的遊戲特別有用，而不會分散可見游標的注意力或到達視窗邊緣的限制。

Amazon GameLift Streams 透過 Web SDK `InputConfiguration`界面中的 `autoPointerLock` 屬性提供自動指標鎖定功能。此功能與 [requestPointerLock API](https://developer.mozilla.org/en-US/docs/Web/API/Element/requestPointerLock) 整合，以提供直覺式且內容感知的滑鼠擷取。

### 自動指標鎖定行為
<a name="sdk-pointer-lock-behavior"></a>

當應用程式為全螢幕且串流主機上看不到遠端游標時，Amazon GameLift Streams 會自動啟用指標鎖定。此行為符合常見的遊戲開發模式：
+ **FPS/TPS 遊戲和 3D 方向控制** - 指標會自動鎖定且游標隱藏，提供 FPS 遊戲所需的無限制攝影機控制。
+ **Point-and-click遊戲和 UI 控制** - 當遊戲讓游標在選單互動或策略遊戲中可見時，指標會保持可見和解鎖狀態，保留預期的使用者體驗。

### 組態選項
<a name="sdk-pointer-lock-configuration"></a>

`autoPointerLock` 屬性接受下列值：

`true`  
當遠端游標隱藏時，一律會擷取滑鼠。

`false`  
無論游標可見性為何，都不會擷取滑鼠。

`'fullscreen'` (default)  
只有在視訊元素處於全螢幕模式且遠端游標不可見時，才會擷取滑鼠。

**重要**  
`autoPointerLock` 由於平台限制，在 Safari 瀏覽器或 iOS 平台上沒有作用。

## 最佳實務
<a name="sdk-mouse-best-practices"></a>

若要確保串流應用程式中的最佳滑鼠處理：
+ **一律串流全螢幕** - 您的應用程式應該已在全螢幕模式下執行，才能在我們的服務上正常運作。此外，我們建議您使用瀏覽器支援，讓串流成為全螢幕元素，以獲得最佳最終使用者體驗。這有助於避免系統游標和軟體游標之間的對齊問題。
+ **隱藏相對動作的游標** - 如果您的應用程式需要相對滑鼠動作 （例如 FPS 樣式的攝影機控制項或以拖曳為基礎的互動），請在這些互動期間隱藏作業系統游標。在某些情況下，您可能需要在滑鼠向下隱藏游標，並在滑鼠向上再次顯示。
+ **顯示絕對定位的游標** - 當您的應用程式需要精確的游標定位以進行 UI 互動時，請確保作業系統游標保持可見，以啟用絕對座標模式。
+ **測試不同的輸入案例** - 確認您的應用程式正確處理相對和絕對滑鼠模式，因為 Amazon GameLift Streams 可能會根據您的游標可見性變更在模式之間切換。
+ **測試不同的視窗模式** - 如適用，在視窗化和全螢幕模式中測試應用程式的滑鼠處理方式。判斷哪個`autoPointerLock`設定最適合您的輸入組態。