Amis dans les jeux Unity

Avec Play Games Friends, vous pouvez créer et gérer une liste d'amis pour différents jeux. Vous pouvez demander l'accès à cette liste pour aider vos utilisateurs à jouer avec leurs amis. Consultez la page consacrée au concept des amis pour en savoir plus sur cette fonctionnalité.

Avant de commencer

  • Configurez votre projet et le plug-in Google Play Jeux pour Unity. Pour en savoir plus, consultez le guide de démarrage.

  • Consultez les bonnes pratiques pour obtenir des instructions sur la meilleure façon d'implémenter ces API.

Consultez les bonnes pratiques pour obtenir des instructions sur la meilleure façon d'implémenter ces API.

Activer la fonctionnalité Amis

Voici les fonctions à utiliser pour ce faire :

  • Afficher les amis : demandez l'accès à la liste d'amis d'un joueur pour pouvoir ajouter ses amis Play Jeux à la liste d'amis gérée par votre jeu.

  • Afficher le profil d'un joueur : autorisez un joueur à consulter le profil Play Jeux d'un autre joueur. C'est une fonctionnalité essentielle pour permettre à un joueur d'identifier ses amis et d'échanger avec d'autres utilisateurs de votre jeu. Elle doit être liée à un élément de l'interface utilisateur pour déclencher le pop-up. Consultez les consignes sur les amis pour en savoir plus.

Afficher les amis

Il existe deux façons de charger des amis, à l'aide du framework ISocial ou directement avec PlayGamesPlatform.

Charger des amis avec le framework ISocial

Social.localUser.LoadFriends((success) =>  {
    Debug.Log("Friends loaded OK: " + ok));
    foreach(IUserProfile p in Social.localUser.friends) {
         Debug.Log(p.userName + " is a friend");
    }

Cependant, cet appel échouera si le joueur actuel n'a pas encore autorisé le jeu à accéder à ces informations. Utilisez GetLastLoadFriendsStatus pour vérifier si LoadFriends a échoué en raison d'une autorisation manquante.

 PlayGamesPlatform.Instance.GetLastLoadFriendsStatus((status) => {
    // Check for consent
    if (status == LoadFriendsStatus.ResolutionRequired) {
        // Ask for resolution.
    }
});

Un jeu peut demander au joueur actif de partager sa liste d'amis en appelant AskForLoadFriendsResolution.

PlayGamesPlatform.Instance.AskForLoadFriendsResolution((result) => {
    if (result == UIStatus.Valid) {
        // User agreed to share friends with the game. Reload friends.
    } else {
        // User doesn’t agree to share the friends list.
    }
});

Cette fonction permet d'afficher l'interface utilisateur souhaitée de partage des amis correspondant à votre plate-forme. Cette UI demande au joueur s'il souhaite partager ses amis avec le jeu.

Charger des amis avec PlayGamesPlatform

Une autre façon de charger des amis consiste à utiliser LoadFriends et LoadMoreFriends :

PlayGamesPlatform.Instance.LoadFriends(pageSize, forceReload, (status) => {
    // Check if the call is successful and if there are more friends to load.
});

PlayGamesPlatform.Instance.LoadMoreFriends(pageSize, (status) => {
    // Check if there are more friends to load.
});

Le paramètre pageSize représente le nombre d'entrées à demander pour cette page. Notez que si les données mises en cache existent déjà, le tampon renvoyé peut contenir un volume de données supérieur à cette taille. Le tampon contiendra forcément au moins autant d'entrées si la collection contient suffisamment d'enregistrements. Si forceReload est défini sur true, cet appel efface toutes les données mises en cache localement et tente de récupérer les dernières données du serveur. Ce type de code est généralement utilisé pour des actions telles qu'une actualisation lancée par l'utilisateur. En principe, il doit être défini sur false pour bénéficier des avantages de la mise en cache des données.

Si le rappel renvoie LoadFriendsStatus.LoadMore, cela signifie qu'il y a plus d'amis à charger. LoadFriendsStatus.ResolutionRequired indique que l'utilisateur n'a pas partagé la liste d'amis. Vous pouvez appeler directement PlayGamesPlatform.Instance.AskForLoadFriendsResolution.

Déterminer la visibilité de la liste d'amis

Utilisez PlayGamesPlatform.Instance.GetFriendsListVisibility pour vérifier si l'utilisateur a partagé la liste d'amis avec le jeu. Les états de retour possibles sont les suivants :

  • FriendsListVisibilityStatus.RequestRequired indique que vous devez demander une autorisation.

  • FriendsListVisibilityStatus.Visible indique que le chargement de la liste d'amis devrait aboutir.

  • FriendsListVisibilityStatus.Unknown ne devrait généralement pas se produire. Vous pouvez définir forceReload sur "true" pour actualiser les données.

PlayGamesPlatform.Instance.GetFriendsListVisibility(forceReload, (friendsListVisibilityStatus) => {});

Afficher le profil d'un joueur

Pour ajouter ou supprimer un joueur en tant qu'ami, utilisez la fonction d'affichage et de comparaison de profils. Cette fonction déclenche une boîte de dialogue inférieure affichant le profil Play Jeux de l'utilisateur. Appelez la fonction avec l'identifiant du joueur demandé. Si le joueur et l'ami ont des pseudos dans le jeu, utilisez-les lors de l'appel pour enrichir l'interface utilisateur du profil d'éléments contextuels supplémentaires :

PlayGamesPlatform.Instance.ShowCompareProfileWithAlternativeNameHintsUI(
    mFirstFriendId, /* otherPlayerInGameName= */ null, /* currentPlayerInGameName= */ null,
    (result) => {
        // Profile comparison view has closed.
});