c# - programar - Soporte del controlador para Xbox One en Windows UWP
xbox one development mode (3)
Me pregunto cómo se supone que debo manejar la entrada para aplicaciones UWP dirigidas a Xbox One. He notado DirectInput, pero veo dos problemas con él para mis casos de uso:
Desde MSDN , solo parece ser compatible con los controladores de Xbox 360
XInput es una API que permite a las aplicaciones recibir información del Xbox 360 Controller para Windows. Se admiten los efectos de retumbar del controlador y la entrada y salida de voz.
DirectX y todas sus API (Direct2d, Direct3D, Xinput, etc.) solo son compatibles con C / C ++. Eso significa que incluso si Xinput admitiera los controladores Xbox One, no podría usar C # o JavaScript para desarrollar aplicaciones verdaderamente universales.
¿Qué opciones tengo (al menos en lo que respecta a C #) para admitir la compatibilidad con el controlador Xbox One en una aplicación de Windows UWP?
DirectX y todas sus API (Direct2d, Direct3D, Xinput, etc.) solo son compatibles con C / C ++
Solo se admite de forma nativa, sí, pero implementar DirectInput desde C # es trivial con SharpDX
Sin embargo, DirectInput no es muy útil para leer los controladores XB, ya que los ejes de activación se fusionan en uno solo, y es imposible diferenciar entre la ausencia de la activación y la retención de ambos.
Echa un vistazo al espacio de nombres Windows.Gaming.Input . Su clase GamePad está en el contrato Universal API y está disponible en todas las familias de dispositivos e idiomas.
Para respaldar @Rob Caplan - MSFT con una fuente, este blog de la Red de desarrolladores de Microsoft dice:
Windows 10: hay una nueva API de WinRT en el espacio de nombres Windows.Gaming.Input para aplicaciones universales de Windows. Esta API es compatible con el controlador común de Xbox 360 y el controlador de Xbox One , incluido el acceso a los motores de activación izquierdo / derecho. La última versión de GamePad se implementa utilizando esta nueva API cuando se construye para Windows 10 . Tenga en cuenta que las aplicaciones existentes de la Tienda Windows basadas en XInput pueden vincularse con xinputuap.lib, que es un adaptador para la nueva API para aplicaciones universales de Windows; este adaptador tampoco existe para auriculares.