GameInputRedist.dll 部署在與遊戲可執行檔相同的目錄中。這稱為側載。側載的執行階段可讓您的遊戲使用其建置和測試時所用的 GameInput 功能和修正,即使在未安裝 GameInput 可轉散發套件或安裝了較舊版本的系統上也是如此。此模型與 DirectX Agility SDK 所使用的模型類似。
PC 和 XBOX 主機都支援側載。在 XBOX 上,側載需要 2025 年 10 月 GDK (2510) 或更新版本,並可讓您的遊戲使用比 GDK 執行階段所支援版本更新的 API 版本,例如在 2026 年 10 月 GDK 之前使用 API v4。如需詳細資訊,請參閱 XBOX 主機上的 GameInput。
在 PC 上,安裝 GameInput 可轉散發套件仍是部署 GameInput 的慣用方式。已安裝的執行階段支援所有 GameInput 功能、由所有應用程式共用,並且會獨立於您的遊戲進行更新。當安裝可轉散發套件不可行時 (例如您的散發通道不支援執行安裝程式時,或在開發和測試電腦上),請使用側載。
取得可側載的執行階段
Microsoft.GameInput NuGet 套件在下列位置包含可側載的執行階段。
NuGet 套件不會將這些檔案複製到您的建置輸出。請在您的建置或封裝流程中新增一個步驟,將適用於目標平台和架構的檔案複製到遊戲的可執行檔旁邊。
在 PC 上,也請將
GameInputRawInputProxy.exe 部署在與 GameInputRedist.dll 相同的目錄中。側載的執行階段會使用此協助程式處理序來接收鍵盤和滑鼠輸入。側載的執行階段只會使用位於其旁邊的 Proxy,絕不會使用已安裝之可轉散發套件中的 Proxy。如果缺少 Proxy,執行階段會改為在遊戲的處理序中接收鍵盤和滑鼠輸入。
執行階段的選取方式
您不需要變更程式碼即可使用側載的執行階段。請連結 NuGet 套件中的gameinput.lib,並如常呼叫 GameInputCreate。第一次呼叫 GameInputCreate 時,gameinput.lib 中的載入器會在下列位置尋找 GameInput 執行階段:
- 系統目錄中的內建執行階段
GameInput.dll。 - 系統目錄或 GameInput 可轉散發套件安裝目錄中的已安裝可轉散發執行階段
GameInputRedist.dll。 - 遊戲可執行檔目錄中的側載執行階段
GameInputRedist.dll。
限制
在 PC 上,某些 GameInput 功能依賴只有在安裝 GameInput 可轉散發套件時才會存在的元件,例如管理輸入焦點的 GameInput 服務。當您的遊戲在 PC 上使用側載的執行階段時,會套用下列限制。這些限制不適用於 XBOX 主機。- 以
true呼叫 IGameInput::EnableBackgroundInput 不會有任何作用,因為啟用背景輸入也會宣告系統按鈕,而側載的執行階段無法宣告系統按鈕。 - 輸入焦點不是由 GameInput 服務管理,因此 GameInput 不會一致地根據遊戲是否具有焦點來篩選輸入。視裝置而定,您的遊戲在沒有焦點時不一定會收到輸入。如果您的遊戲依賴一致的焦點行為,請在處理輸入之前檢查遊戲是否具有焦點,或安裝 GameInput 可轉散發套件。
- 在 API 版本 v1 到 v3 中,
IGameInput::SetFocusPolicy只接受GameInputDefaultFocusPolicy和GameInputEnableBackgroundInput。其他焦點原則 (包括任何旗標組合) 都會被忽略。 - 在 API 版本 v1 到 v3 中,
IGameInput::RegisterSystemButtonCallback會失敗並傳回GAMEINPUT_E_FEATURE_REQUIRES_INSTALL(0x838AD02B)。在 API 版本 v4 中,系統按鈕會在GameInputKindSystemButton種類的讀數中回報,這可搭配側載的執行階段運作。如需詳細資訊,請參閱 IGameInputReading::GetSystemButtonState。
建議
- 針對 GameInput 標頭、
gameinput.lib和側載的執行階段,使用相同版本的 NuGet 套件。 - 在已安裝和未安裝 GameInput 可轉散發套件的情況下,都要測試您的遊戲。
- 如果您的遊戲在 PC 上需要背景輸入或一致的焦點行為,請安裝 GameInput 可轉散發套件來取代側載執行階段,或與其搭配使用。如需詳細資訊,請參閱透過 NuGet 在 PC 和主機上使用 GameInput。
另請參閱
透過 NuGet 在 PC 和主機上使用 GameInputXBOX 主機上的 GameInput
GameInput API 版本控制
GameInput 基本概念
GameInput API 參考
