Skip to main content
L’association d’une manette à un utilisateur est essentielle pour la plupart des jeux. Lorsque le jeu perd toutes les manettes de ce type pour un utilisateur (par exemple, si la batterie est vide), l’approche standard pour un jeu solo consiste à le mettre en pause et à afficher une boîte de dialogue demandant à l’utilisateur d’allumer une manette. Avec la fonction XUserFindControllerForUserWithUiAsync, les jeux peuvent améliorer cette expérience. Cette fonction prend un XUserHandle en entrée et affiche une boîte de dialogue : <<Gamer>>, vous avez besoin d’une manette pour ce jeu. Maintenez le bouton A enfoncé pour confirmer la manette que vous souhaitez utiliser Une fois que l’utilisateur a confirmé sa manette, le jeu peut appeler XUserFindControllerForUserWithUiResult pour obtenir l’APP_LOCAL_DEVICE_ID de la manette choisie. Plus important encore, cette manette est désormais associée à cet utilisateur. Si cet utilisateur appuie ensuite sur le bouton nexus, le Guide XBOX affiche les informations de cet utilisateur dans le Guide. Notez que le joueur peut fermer cette boîte de dialogue sans sélectionner de manette, et le titre doit gérer cette annulation de manière appropriée. Par exemple, un titre peut appeler XUserFindControllerForUserWithUiAsync à plusieurs reprises pour imposer une sélection, revenir à l’écran titre puisqu’il n’existe plus de mappage utilisateur/manette, ou adopter tout autre comportement pertinent pour le titre. Notez également qu’avec ce processus, les utilisateurs peuvent être associés à des manettes qui étaient auparavant associées à d’autres utilisateurs du jeu. Ce comportement est intentionnel. Chaque fois que l’association entre un utilisateur et une manette change, un XUserDeviceAssociationChangedCallback se produit. À noter que cet événement se déclenche également lors de l’association réussie d’un utilisateur à une manette résultant d’un appel à XUserFindControllerForUserWithUiAsync.

Voir aussi

XUserFindControllerForUserWithUiAsync
Last modified on October 6, 2026