GameInputRedist.dll, en el mismo directorio que el ejecutable de su juego. Esto se denomina carga local (sideloading). Un entorno de ejecución cargado localmente permite que su juego use las características y correcciones de GameInput con las que se compiló y probó, incluso en un sistema en el que el paquete redistribuible de GameInput no está instalado o en el que hay instalada una versión anterior. Este modelo es similar al que usa el DirectX Agility SDK.
La carga local se admite en PC y en consolas XBOX. En XBOX, la carga local requiere el GDK de octubre de 2025 (2510) o posterior, y permite que su juego use una versión de la API más reciente que la que admite el entorno de ejecución del GDK, como la API v4 antes del GDK de octubre de 2026. Para obtener más información, consulte GameInput en consolas XBOX.
Instalar el paquete redistribuible de GameInput sigue siendo la forma preferida de implementar GameInput en PC. Un entorno de ejecución instalado admite todas las características de GameInput, lo comparten todas las aplicaciones y se actualiza independientemente de su juego. Use la carga local cuando no resulte práctico instalar el paquete redistribuible; por ejemplo, cuando su canal de distribución no admita la ejecución de instaladores, o en máquinas de desarrollo y prueba.
Obtención del entorno de ejecución que se puede cargar localmente
El paquete NuGet Microsoft.GameInput contiene el entorno de ejecución que se puede cargar localmente en las siguientes ubicaciones.
El paquete NuGet no copia estos archivos en la salida de compilación. Agregue a su proceso de compilación o empaquetado un paso que copie los archivos de su plataforma y arquitectura de destino junto al ejecutable de su juego.
En PC, implemente también
GameInputRawInputProxy.exe en el mismo directorio que GameInputRedist.dll. El entorno de ejecución cargado localmente usa este proceso auxiliar para recibir la entrada de teclado y mouse. Un entorno de ejecución cargado localmente solo usa el proxy que se encuentra junto a él, nunca el de un paquete redistribuible instalado. Si falta el proxy, el entorno de ejecución recurre a recibir la entrada de teclado y mouse en el proceso de su juego.
Cómo se selecciona el entorno de ejecución
No es necesario cambiar el código para usar un entorno de ejecución cargado localmente. Vincule congameinput.lib del paquete NuGet y llame a GameInputCreate como de costumbre. La primera vez que se llama a GameInputCreate, el cargador de gameinput.lib busca el entorno de ejecución de GameInput en las siguientes ubicaciones:
- El entorno de ejecución integrado,
GameInput.dll, en el directorio del sistema. - El entorno de ejecución del paquete redistribuible instalado,
GameInputRedist.dll, en el directorio del sistema o en el directorio en el que está instalado el paquete redistribuible de GameInput. - El entorno de ejecución cargado localmente,
GameInputRedist.dll, en el directorio del ejecutable del juego.
Limitaciones
En PC, algunas características de GameInput dependen de componentes que solo están presentes cuando el paquete redistribuible de GameInput está instalado, como el servicio GameInput que administra el foco de entrada. Cuando su juego usa un entorno de ejecución cargado localmente en PC, se aplican las siguientes limitaciones. Estas limitaciones no se aplican en las consolas XBOX.- Las llamadas a IGameInput::EnableBackgroundInput con
trueno tienen ningún efecto, ya que habilitar la entrada en segundo plano también reclama los botones del sistema, que un entorno de ejecución cargado localmente no puede reclamar. - El servicio GameInput no administra el foco de entrada, por lo que GameInput no filtra la entrada de forma coherente en función de si su juego tiene el foco. Según el dispositivo, es posible que su juego reciba o no la entrada mientras no tiene el foco. Si su juego depende de un comportamiento coherente del foco, compruebe si tiene el foco antes de actuar sobre la entrada, o instale el paquete redistribuible de GameInput.
- En las versiones de la API de v1 a v3,
IGameInput::SetFocusPolicysolo aceptaGameInputDefaultFocusPolicyyGameInputEnableBackgroundInput. Las demás directivas de foco, incluida cualquier combinación de marcas, se omiten. - En las versiones de la API de v1 a v3,
IGameInput::RegisterSystemButtonCallbackproduce un error conGAMEINPUT_E_FEATURE_REQUIRES_INSTALL(0x838AD02B). En la versión v4 de la API, los botones del sistema se notifican en lecturas de tipoGameInputKindSystemButton, que funcionan con un entorno de ejecución cargado localmente. Para obtener más información, consulte IGameInputReading::GetSystemButtonState.
Recomendaciones
- Use la misma versión del paquete NuGet para el encabezado de GameInput,
gameinput.liby el entorno de ejecución cargado localmente. - Pruebe su juego con y sin el paquete redistribuible de GameInput instalado.
- Si su juego requiere entrada en segundo plano o un comportamiento coherente del foco en PC, instale el paquete redistribuible de GameInput en lugar de cargar localmente el entorno de ejecución, o además de hacerlo. Para obtener más información, consulte GameInput para PC y consola con NuGet.
Consulte también
GameInput para PC y consola con NuGetGameInput en consolas XBOX
Control de versiones de la API de GameInput
Aspectos básicos de GameInput
Referencia de la API de GameInput
