Ce document vous explique comment configurer votre projet Unity afin d'utiliser le plug-in Google Play Games pour Unity. Vous apprendrez à installer le plug-in et à configurer votre projet Unity. Ce document explique également comment vérifier le service d'authentification.
Avant de commencer
Consultez la configuration logicielle requise. Configurez la Play Console et installez l'éditeur Unity.
Configurez la Play Console pour votre jeu.
Installez l'éditeur Unity et créez votre jeu dans Unity.
Installation du plug-in
Pour télécharger et installer le plug-in Google Play Jeux pour Unity, procédez comme suit dans l'éditeur Unity :
Téléchargez le dépôt GitHub.
Dans le répertoire
current-build, recherchez le fichierunitypackage. Ce fichier représente le plug-in. Par exemple, 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 :
Ouvrez votre projet de jeu.
Dans l'éditeur Unity, cliquez sur Assets > Import Package > Custom Package (Assets > Importer le package > Package personnalisé) pour importer le fichier
unitypackagedans les éléments de votre projet.Assurez-vous que votre plate-forme de compilation est définie sur Android.
Dans le menu principal, cliquez sur File > Build Settings (Fichier > Paramètres de compilation).
Sélectionnez Android , puis cliquez sur Switch Platform (Changer de plate-forme).
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.
Dans l'éditeur Unity, cliquez sur File > Build Settings > Player Settings > Other Settings (Fichier > Paramètres de compilation > Paramètres du lecteur > Autres paramètres).
Dans la zone Target API level (Niveau d'API cible), sélectionnez une version.
Dans la zone Scripting backend (Backend de script), saisissez
IL2CPP.Dans la zone Target architectures (Architectures cibles), sélectionnez une valeur.
Notez le nom du package package_name. Vous pourrez utiliser ces informations ultérieurement.
Créer un keystore
Pour valider vos identifiants, vous avez besoin d'une clé. Procédez comme suit :
- Dans l'éditeur Unity, cliquez sur File > Build settings > Player settings (Fichier > Paramètres de compilation > Paramètres du lecteur).
- Dans la section Publishing settings (Paramètres de publication), cliquez sur Keystore manager (Gestionnaire de clés Keystore).
- Dans la fenêtre Keystore manager (Gestionnaire de Keystore), cliquez sur Keystore > Create new > Anywhere (Keystore > Créer > N'importe où).
- Sélectionnez un dossier et attribuez un nom au keystore.
- Dans le champ Password (Mot de passe), saisissez un mot de passe et confirmez-le.
- Cliquez sur Add key (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 :
Dans la Google Play Console, ouvrez le jeu.
Sur la page Configuration des services Play Jeux (Accroître le nombre d'utilisateurs > Services Play Jeux > Configuration et gestion > Configuration), cliquez sur Récupérer les ressources.
Dans la fenêtre Ressources, cliquez sur l'onglet Android(XML).
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 :
Dans l'éditeur Unity, cliquez sur Window > Google Play Games > Setup > Android Setup (Fenêtre > Google Play Jeux > Configuration > Configuration Android).
- Dans le champ Directory to save constants (Répertoire pour l'enregistrement des constantes), saisissez le nom du dossier du fichier des constantes.
Dans le champ Constants class name (Nom de la classe des constantes), saisissez le nom de la classe C# à créer, y compris l'espace de noms.
Par exemple, si la classe C# est
id.cset qu'elle se trouve sous Assets > myproject > scripts > id.cs. Le nom de la classe des constantes peut êtremyproject.scripts.id.Dans le champ Resources definition (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 Client ID (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 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 d'autres appels d'API hors du jeu.
Cliquez sur Setup (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.
Dans l'éditeur Unity, cliquez sur Window > Google Play Games > Setup > Nearby Connections Setup (Fenêtre > Google Play Jeux > Configuration > Configuration des connexions à proximité).
Dans le champ Nearby connection service ID (ID du service de connexion à proximité), saisissez le package_name.
Utilisez le même package_name que celui que vous avez utilisé pour configurer le projet Unity.
Cliquez sur Setup (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 par l'intermédiaire de l'objet Social.Active, qui fait référence à une interface ISocialPlatform. Vous pouvez accéder aux extensions non standards des services de jeux Google Play 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 Google Play Games deviennent votre implémentation de plate-forme de réseau social par défaut. Cela signifie
que le plug-in des services Google Play Games effectue des appels statiques vers les méthodes dans Social et
Social.Active, ce qui est le comportement attendu pour 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 des services Google Play Games sans remplacer l'option par défaut. Pour…
- Appelez la méthode
PlayGamesPlatform.Activate. - Si
Xyzest le nom d'une méthode que vous appelez sur la classeSocial, n'appelez pasSocial.Xyz. Appelez plutôtPlayGamesPlatform.Instance.Xyz. - Utilisez la propriété
PlayGamesPlatform.Instanceplutôt queSocial.Activelorsque vous interagissez avec les services de jeux Google Play.
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);
Vérifier le service d'authentification
À l'ouverture de votre jeu, une connexion aux services Play Jeux est automatiquement effectuée à l'aide de l' authentification de la plate-forme. Si la connexion aboutit, votre jeu affiche une invite de connexion et peut utiliser le plug-in des services Google Play Games pour Unity.
Si un utilisateur n'a jamais utilisé les services Google Play Jeux 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 d'authentification 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 authentifié.
Si la version du plug-in Unity est antérieure à v11, vous ne pouvez pas utiliser la fonctionnalité d'authentification.
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 authenticate. 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 d'authentification.
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 d'API de services de jeux Google Play 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é.
Empêcher la création automatique de profils
Vous pouvez désactiver les invites de création automatique de profils via le fichier manifeste. Ainsi, les utilisateurs sans profil de services Play Jeux peuvent continuer à charger le jeu sans être invités à créer un profil de services Play Jeux. Pour en savoir plus, consultez Options de création de profils.
Pour utiliser cette fonctionnalité, assurez-vous que les conditions suivantes sont remplies :
- L'appareil ne dispose d'aucun profil de services Play Jeux sur l'un des comptes Google connectés.
- Votre jeu est intégré au plug-in Unity des services Play Jeux
2.1.0ou version ultérieure.
Dans le fichier
AndroidManifest.xml, ajoutez lacom.google.android.gms.games.SUPPRESS_GAME_PROFILE_CREATIONbalise dans l'<meta-data>élément et les attributs à l'<application>élément :<application> ... <meta-data android:name="com.google.android.gms.games.SUPPRESS_GAME_PROFILE_CREATION" android:value="true" /> ... </application>
Si cet indicateur est défini sur "true", les services Play Games sont informés que votre jeu gérera le processus de création de profils. Par conséquent, les services Play Jeux n'afficheront pas automatiquement l'interface utilisateur de création de profils pour les utilisateurs de l'appareil qui ne disposent pas d'un profil de services Play Jeux.
Pour gérer les cas où un utilisateur n'est pas authentifié en raison de l'absence de profil de services Play Jeux, vous pouvez utiliser PlayGamesPlatform.Instance.IsAuthenticated(). Cette méthode renvoie
falsecar la création de profils échoue. Pour résoudre ce problème, démarrez le processus de création de profils en appelant PlayGamesPlatform.Instance.ManuallyAuthenticate().if (!PlayGamesPlatform.Instance.IsAuthenticated()) { // The user is unauthenticated, likely due to a missing Play Games profile. // Calling PlayGamesPlatform.Instance.ManuallyAuthenticate() will trigger // the profile creation UI. PlayGamesPlatform.Instance.ManuallyAuthenticate((SignInStatus status) => { // ... }); }Après avoir ajouté la balise de suppression, utilisez la fenêtre
logcatpour vérifier l'ajout. La sortielogcatcontient un message semblable à celui-ci : "Game opted out of automatic profile creation prompt (using manifest)" (Le jeu a désactivé l'invite de création automatique de profils [à l'aide du fichier manifeste]).
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 des fichiers Android App Bundle optimisés et distribués. 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 de l'éditeur Unity. 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 l'éditeur Unity, procédez comme suit :
- Dans l'éditeur Unity, cliquez sur File > Build settings (Fichier > Paramètres de compilation).
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 .
Cliquez sur Build (Créer).
Téléchargez le fichier AAB depuis l'éditeur Unity.
Créer une version de test interne
Pour créer une version de test interne et ajouter des testeurs dans la Play Console, procédez comme suit :
- Dans la Google Play Console, sélectionnez un jeu.
- Accédez à la page Test et version (Tests > Tests internes).
- Cliquez sur Importer , puis sélectionnez le fichier AAB.
- Dans le champ Détails de la version, saisissez un nom.
- Cliquez sur Suivant et vérifiez les détails de la version.
- Cliquez sur Enregistrer et publier.
Dans l'onglet Testeurs, cliquez sur Créer une liste de distribution pour ajouter jusqu'à 100 testeurs.
Pour en savoir plus, consultez Test interne : gérer jusqu'à 100 testeurs.
Dans le champ URL ou adresse e-mail pour les commentaires, saisissez une URL ou une adresse e-mail pour fournir des commentaires.
Cliquez sur Enregistrer.
Vérifier vos identifiants de signature d'application
- Dans la Google Play Console, sélectionnez un jeu.
- Accédez à la page Test et version (Configuration > Signature d'application).
- 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. Au démarrage du jeu, vous verrez la tentative d'authentification automatique.
Vous avez besoin d'un appareil Android physique sur lequel le débogage USB est activé ou d'un émulateur pouvant 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 :
- Ajoutez l'ID client Web de votre jeu dans la Play Console.
- Dans la Google Play Console, sélectionnez votre jeu.
- Sur la page Configuration (Accroître le nombre d'utilisateurs > services Play Games > Configuration et gestion > Configuration), cliquez sur Ajouter des identifiants.
- Sur la page Ajouter des identifiants, sélectionnez Serveur de jeu.
- Générez un ID client OAuth 2.0.
- Notez la valeur de l'ID client. Vous devrez fournir cette valeur ultérieurement.
Ajoutez l'ID client Web à Unity Hub.
- Dans Unity Hub, configurez Google Play Jeux pour Unity et authentifiez-vous.
- Dans Unity Hub, accédez à Window > Google Play Games > Setup > Android Setup (Fenêtre > Google Play Jeux > Configuration > Configuration Android).
- Saisissez la valeur de l'ID client.
Récupérez le code d'autorisation du serveur pour des champs d'application supplémentaires.
C#
using GooglePlayGames.BasicApi; // Define selectedScope having additional identity scopes. private List
selectedScopes = new List (); // Add scopes you want to request. selectedScopes.Add(AuthScope.OPEN_ID); selectedScopes.Add(AuthScope.PROFILE); selectedScopes.Add(AuthScope.EMAIL); // Call RequestServerSideAccess with additional scopes and retrieve // authcode and grantedscopes list. PlayGamesPlatform.Instance.RequestServerSideAccess( /* forceRefreshToken= */ false,selectedScopes (AuthResponse authResponse) => { string authCode = authResponse.GetAuthCode(); List grantedScopes = authResponse.GetGrantedScopes(); // send authCode to server... });
Effectuer la configuration et ajouter des fonctionnalités
Activez les fonctionnalités des services de jeux Play.
Ajoutez des fonctionnalités à votre jeu à l'aide des API des services de jeux Play :
API Recall pour Unity (prise en charge uniquement pour la version v11 et ultérieures du plug-in Unity)