Configurer Google Play Jeux pour Unity et la connexion

Ce document vous explique comment configurer votre projet Unity pour utiliser le plug-in Google Play Jeux pour Unity. Vous allez apprendre à installer le plug-in et à configurer votre projet Unity. Il explique également comment valider le service de connexion.

Avant de commencer

Consultez les conditions logicielles requises. Configurez la Play Console et installez Unity Hub.

Installation du plug-in

Pour télécharger et installer le plug-in Google Play Jeux pour Unity, procédez comme suit dans Unity Hub:

  1. Téléchargez le dépôt GitHub.

  2. Dans le répertoire current-build, recherchez le fichier unitypackage. Ce fichier représente le plug-in. Il devrait ressembler à ceci:

      current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
    

Configurer le projet Unity

Pour configurer un projet Unity dans les paramètres du lecteur, procédez comme suit:

  1. Ouvrez votre projet de jeu.

  2. Dans Unity Hub, cliquez sur Assets > Import Package > Custom Package (Éléments > Importer un package > Package personnalisé) pour importer le fichier unitypackage dans les éléments de votre projet.

  3. Assurez-vous que votre plate-forme de compilation est définie sur Android.

    1. Dans le menu principal, cliquez sur File > Build Settings (Fichier > Paramètres de compilation).

    2. Sélectionnez Android, puis cliquez sur Switch Platform (Changer de plate-forme).

    3. Vous devriez voir un nouvel élément de menu sous Window > Google Play Games (Fenêtre > Google Play Jeux). Si ce n'est pas le cas, actualisez les éléments en cliquant sur Assets > Refresh (Assets > Actualiser), puis réessayez de définir la plate-forme de compilation.

  4. Dans Unity Hub, cliquez sur File > Build Settings > Player Settings > Other Settings (Fichier > Paramètres de compilation > Paramètres du lecteur > Autres paramètres).

  5. Dans le champ Niveau d'API cible, sélectionnez une version.

  6. Dans le champ Scripting backend (Backend de script), saisissez IL2CPP.

  7. Dans la zone Architectures cibles, sélectionnez une valeur.

  8. Notez le nom du package package_name.Vous pourrez utiliser ces informations plus tard.

Paramètres du joueur dans votre projet Unity
Paramètres du joueur dans votre projet Unity.

Créer un keystore

Pour valider vos identifiants, vous avez besoin d'une clé. Procédez comme suit :

  1. Dans Unity Hub, cliquez sur File > Build settings > Player settings (Fichier > Paramètres de compilation > Paramètres du lecteur).
  2. Dans la section Paramètres de publication, cliquez sur Gestionnaire de keystore.
    1. Dans la fenêtre Gestionnaire de keystore, cliquez sur Keystore > Create new > Anywhere (Keystore > Créer > N'importe où).
    2. Sélectionnez un dossier et attribuez un nom au keystore.
    3. Dans le champ Mot de passe, saisissez un mot de passe et confirmez-le.
    4. Cliquez sur Ajouter une clé.

Notez le nom du dossier. Vous pouvez utiliser ce nom pour créer des identifiants dans Google Cloud.

Copier les ressources Android depuis la Play Console

Chaque réussite, classement et événement que vous créez dans la Play Console inclut une ressource Android que vous utilisez lorsque vous configurez votre projet Unity.

Pour obtenir les ressources Android de votre jeu, procédez comme suit:

  1. Dans la Google Play Console, ouvrez le jeu.

  2. Sur la page Services de jeux Play - Configuration (Croissance> Services de jeux Play> Configuration et gestion> Configuration), cliquez sur Obtenir des ressources.

  3. Dans la fenêtre Resources (Ressources), cliquez sur l'onglet Android(XML) (Android (XML)).

  4. Sélectionnez et copiez le contenu des ressources Android (AndroidManifest.xml).

Ajouter les ressources Android à votre projet Unity

Ajoutez les ressources Android suivantes à votre projet Unity:

  1. Dans Unity Hub, cliquez sur Window > Google Play Games > Setup > Android Setup (Fenêtre > Google Play Jeux > Configuration > Configuration Android).

    • Dans le champ Répertoire pour enregistrer les constantes, saisissez le nom du dossier du fichier des constantes.
    • Dans le champ Nom de la classe des constantes, saisissez le nom de la classe C# à créer, espace de noms compris.

      Par exemple, si la classe C# est id.cs et se trouve sous Assets > myproject > scripts > id.cs. Le nom de la classe de constantes peut être myproject.scripts.id.

    • Dans le champ Définition des ressources, collez les données des ressources Android (fichier AndroidManifest.xml) que vous avez copiées depuis la Google Play Console.

    • (Facultatif) Dans le champ ID client, saisissez l'ID client de l'application Web associée.

      Pour obtenir l'ID client de votre jeu à partir de Google Cloud, consultez la section Créer des ID client.

      Cela n'est nécessaire que si vous disposez d'un backend Web pour votre jeu et que vous avez besoin d'un code d'authentification de serveur pour échanger un jeton d'accès par le serveur backend ou si vous avez besoin d'un jeton d'identification pour que le joueur puisse effectuer des appels d'API hors du jeu.

    • Cliquez sur Configurer. Votre jeu est ainsi configuré avec l'identifiant client et génère une classe C# contenant des constantes pour chacune de vos ressources Android.

  2. Dans Unity Hub, cliquez sur Window > Google Play Games > Setup > Nearby Connections Setup (Fenêtre > Google Play Jeux > Configuration > Configuration des connexions à proximité).

    • Dans le champ ID du service de connexion à proximité, saisissez package_name.

      Utilisez le même package_name que celui que vous avez utilisé dans la section Configurer le projet Unity.

    • Cliquez sur Configurer.

Choisir une plate-forme de réseau social

Le plug-in des services de jeux Google Play met en œuvre l'interface de réseau social d'Unity pour sa compatibilité avec les jeux qui utilisent déjà cette interface lors de l'intégration à d'autres plates-formes. Cependant, certaines fonctionnalités propres à Play Jeux sont proposées en tant qu'extensions de l'interface de réseau social standard fournie par Unity.

Les appels d'API standards sont accessibles via l'objet Social.Active, qui fait référence à une interface ISocialPlatform. Vous pouvez accéder aux extensions Google Play Jeux non standards en castant l'objet Social.Active dans la classe PlayGamesPlatform, où des méthodes supplémentaires sont disponibles.

Utiliser le plug-in sans remplacer la plate-forme de réseau social par défaut

Lorsque vous appelez PlayGamesPlatform.Activate, les services de jeux Google Play deviennent votre implémentation de plate-forme de réseau social par défaut. Cela signifie que les appels statiques vers les méthodes dans Social et Social.Active seront effectués par le plug-in des services de jeux Google Play. C'est le comportement de la plupart des jeux utilisant le plug-in.

Toutefois, si, pour une raison quelconque, vous souhaitez que l'implémentation par défaut reste accessible (par exemple, pour envoyer des réussites et des classements à une autre plate-forme de réseau social), vous pouvez utiliser le plug-in Google Play Jeux Services sans remplacer l'option par défaut. Pour…

  1. Ne pas appeler PlayGamesPlatform.Activate
  2. Si Xyz est le nom d'une méthode que vous devez appeler sur la classe Social, n'appelez pas Social.Xyz. Appelez plutôt PlayGamesPlatform.Instance.Xyz.
  3. N'utilisez pas Social.Active lorsque vous interagissez avec les services Google Play Jeux. Utilisez plutôt PlayGamesPlatform.Instance.

Ainsi, vous pouvez même envoyer des scores et des réussites simultanément à au moins deux plates-formes de réseaux sociaux :

    // Submit achievement to original default social platform
    Social.ReportProgress("MyAchievementIdHere", 100.0f, callback);

    // Submit achievement to Google Play
    PlayGamesPlatform.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f, callback);

Valider le service de connexion

À l'ouverture de votre jeu, une connexion aux services de jeux Play est automatiquement effectuée à l'aide du service de connexion. Si la connexion aboutit, votre jeu affiche une invite de connexion et peut utiliser le plug-in Google Play Jeux Services pour Unity.

Si un utilisateur n'a jamais utilisé les services de jeux Google Play sur son appareil, il est automatiquement redirigé vers un écran de configuration unique pour créer un compte Play Jeux.

Dans la méthode Start de votre script, écoutez le résultat de la tentative de connexion automatique, récupérez l'état d'authentification et désactivez les fonctionnalités des services de jeux Play si l'utilisateur n'est pas connecté.

Si la version du plug-in Unity est antérieure à v11, vous ne pouvez pas utiliser la fonctionnalité de connexion.

    using GooglePlayGames;

    public void Start() {
      PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication);
    }

    internal void ProcessAuthentication(SignInStatus status) {
      if (status == SignInStatus.Success) {
        // Continue with Play Games Services
      } else {
        // Disable your integration with Play Games Services or show a login button
        // to ask users to sign-in. Clicking it should call
        // PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
      }
    }

Le code de résultat est une énumération que vous pouvez utiliser pour identifier la raison d'un échec de connexion.

Si vous préférez utiliser la plate-forme de réseaux sociaux Unity, vous pouvez également utiliser le code suivant:

  using GooglePlayGames;

  public void Start() {
    PlayGamesPlatform.Activate();
    Social.localUser.Authenticate(ProcessAuthentication);
  }

Vous ne pouvez pas effectuer d'appels à l'API Google Play Jeux Services tant qu'Authenticate n'a pas renvoyé une valeur de retour. Par conséquent, nous vous recommandons d'afficher un écran d'attente jusqu'à ce que le rappel soit appelé. De la sorte, les utilisateurs ne pourront pas commencer à jouer tant que le processus d'authentification ne sera pas terminé.

Utiliser la signature d'application Play

Google gère et protège la clé de signature de votre application à l'aide de la signature d'application Play. Vous pouvez utiliser la signature d'application Play pour signer la distribution optimisée de fichiers Android App Bundle(AAB). La signature d'application Play stocke votre clé de signature d'application sur l'infrastructure sécurisée de Google. Pour utiliser la signature d'application Play, vous devez d'abord créer et télécharger un fichier AAB à partir d'Unity Hub. Vous pouvez ensuite importer le fichier AAB dans la Play Console et créer une version de test interne.

Créer un fichier AAB

Pour créer un fichier AAB dans Unity Hub, procédez comme suit:

  1. Dans Unity Hub, cliquez sur File > Build settings (Fichier > Paramètres de compilation).
  2. Sélectionnez Build App Bundle ( Google Play ) (Créer un app bundle [Google Play]).

    Pour en savoir plus, consultez la documentation de référence sur les paramètres de compilation Android.

  3. Cliquez sur Compiler.

  4. Téléchargez le fichier AAB depuis Unity Hub.

Créer une version pour tests internes

Pour créer une version de test interne et ajouter des testeurs dans la Play Console, procédez comme suit:

  1. Dans la Google Play Console, sélectionnez un jeu.
  2. Accédez à la page Test et publication (Tests > Tests internes).
  3. Cliquez sur Importer, puis sélectionnez le fichier AAB.
  4. Dans le champ Détails de la version, saisissez un nom.
  5. Cliquez sur Suivant et vérifiez les détails de la version.
  6. Cliquez sur Enregistrer et publier.
  7. Dans l'onglet Testeurs, cliquez sur Créer une liste de diffusion pour ajouter jusqu'à 100 testeurs.

    Pour en savoir plus, consultez Test interne: gérer jusqu'à 100 testeurs.

  8. Dans le champ URL ou adresse e-mail pour les commentaires, saisissez une URL ou une adresse e-mail pour envoyer vos commentaires.

  9. Cliquez sur Enregistrer.

Valider vos identifiants de signature d'application

  1. Dans la Google Play Console, sélectionnez un jeu.
  2. Accédez à la page Test et publication (Configuration > Signature d'application).
  3. Vérifiez vos identifiants de signature d'application.

Créer et exécuter le projet

À ce stade, vous pouvez créer et exécuter le projet de jeu. Lorsque le jeu commence, la tentative de connexion automatique s'affiche.

Vous avez besoin d'un appareil Android physique avec le débogage USB activé ou d'un émulateur capable d'exécuter le projet développé.

Récupérer les codes d'authentification du serveur

Pour accéder aux API Google sur un serveur Web backend pour le compte du joueur actuel, vous devez obtenir un code d'authentification auprès de l'application cliente et le transmettre à l'application de votre serveur Web. Ce code peut ensuite être échangé contre un jeton d'accès permettant d'appeler les différentes API. Pour en savoir plus sur ce workflow, consultez Se connecter avec Google pour le Web.

Voici comment procéder pour obtenir le code d'accès côté serveur :

  1. Configurez l'identifiant client Web de l'application Web associée à votre jeu dans la Play Console.

  2. Appelez PlayGamesPlatform.Instance.RequestServerSideAccess une fois le joueur authentifié pour obtenir le code d'accès côté serveur.

  3. Transmettez ce code à votre application de serveur.

  PlayGamesPlatform.Instance.RequestServerSideAccess(
    /* forceRefreshToken= */ false,
    code -> {
      // send code to server
    });

Effectuer la configuration et ajouter des fonctionnalités