Tratamiento de la pérdida del mando
Tratamiento de la pérdida del mando
Tener un mando asociado a un usuario es fundamental para la mayoría de los juegos. Cuando el
juego pierde todos esos mandos de un usuario (por ejemplo, porque la batería está agotada), el
enfoque estándar para un juego de un solo jugador es pausarlo y mostrar un cuadro de diálogo
que pida al usuario que encienda un mando.
Mediante la función XUserFindControllerForUserWithUiAsync,
los juegos pueden mejorar esta experiencia. Esta función toma un XUserHandle
como entrada y mostrará un cuadro de diálogo:
<<Gamer>>, necesitas un mando para este juego.
Mantén presionado A para confirmar el mando que quieres usar.
Una vez que el usuario confirma su mando, el juego puede llamar a
XUserFindControllerForUserWithUiResult
para obtener el APP_LOCAL_DEVICE_ID del mando elegido. Y lo que es más importante, ese
mando queda ahora asociado a ese usuario. Si ese usuario presiona después el botón Nexus,
la guía de XBOX mostrará la información de ese usuario en la guía.
Tenga en cuenta que el jugador puede cancelar este cuadro de diálogo sin seleccionar un mando, y el título debe controlar esta cancelación adecuadamente. Por ejemplo, un título podría llamar repetidamente a XUserFindControllerForUserWithUiAsync para forzar una selección, o podría volver a la pantalla de inicio del título dado que ya no existe una asignación de usuario a mando, o adoptar algún otro comportamiento que tenga sentido para el título.
Tenga en cuenta también que, con este proceso, los usuarios pueden quedar asociados a mandos que anteriormente estaban asociados a otros usuarios del juego. Esto es intencionado.
Cada vez que cambia la asociación entre un usuario y un mando, se producirá una
XUserDeviceAssociationChangedCallback.
Como nota, este evento también se desencadenará con el emparejamiento correcto de usuario y mando
resultante de llamar a
XUserFindControllerForUserWithUiAsync.
Última modificación el 28 de agosto de 2026
Temas relacionados
XUserFindControllerForUserWithUiAsyncUsuariosIdentidad de usuario y API de XUser en el GDKDescripción del flujo de sincronización de Game SavesXR-112 Establecimiento de un usuario y un mando en la activación