Configurare Google Play Giochi per Unity e accedere

Questo documento illustra la procedura per configurare il progetto Unity in modo da utilizzare il plug-in Google Play Giochi per Unity. Scopri come installare il plug-in e configurare il progetto Unity. Il documento spiega anche come verificare il servizio di accesso.

Prima di iniziare

Esamina i requisiti del software. Configura Play Console e installa Unity Hub.

Installazione del plug-in

Per scaricare e installare il plug-in Google Play Giochi per Unity, segui questi passaggi in Unity Hub:

  1. Scarica il repository GitHub.

  2. Nella directory current-build, individua il file unitypackage. Questo file rappresenta il plug-in. Ad esempio, dovrebbe essere simile al seguente:

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

Configura il progetto Unity

Per configurare un progetto Unity nelle impostazioni del player:

  1. Apri il progetto di gioco.

  2. In Unity Hub, fai clic su Asset > Importa pacchetto > Pacchetto personalizzato per importare il file unitypackage nelle risorse del progetto.

  3. Assicurati che la piattaforma di compilazione corrente sia impostata su Android.

    1. Nel menu principale, fai clic su File > Impostazioni di compilazione.

    2. Seleziona Android e fai clic su Cambia piattaforma.

    3. Dovresti trovare un nuovo elemento di menu in Finestra > Google Play Giochi. Se non è presente, aggiorna gli asset facendo clic su Asset > Aggiorna e poi prova a impostare di nuovo la piattaforma di compilazione.

  4. In Unity Hub, fai clic su File > Impostazioni di compilazione > Impostazioni del player > Altre impostazioni.

  5. Nella casella Livello API target, seleziona una versione.

  6. Nella casella Backend di scripting, inserisci IL2CPP.

  7. Nella casella Architetture target, seleziona un valore.

  8. Prendi nota del nome del pacchetto package_name.Puoi utilizzare queste informazioni più tardi.

Le impostazioni del player nel progetto Unity
Le impostazioni del player nel progetto Unity.

Crea un nuovo archivio chiavi

Per convalidare le tue credenziali, hai bisogno di una chiave. Procedi nel seguente modo:

  1. In Unity Hub, fai clic su File > Impostazioni di compilazione > Impostazioni del player.
  2. Nella sezione Impostazioni di pubblicazione, fai clic su Gestione del keystore.
    1. Nella finestra Gestore del keystore, fai clic su Keystore > Crea nuovo > Ovunque.
    2. Seleziona una cartella e fornisci un nome per il keystore.
    3. Nella casella Password, inserisci una password e confermala.
    4. Fai clic su Aggiungi chiave.

Prendi nota del nome della cartella. Puoi utilizzare questo nome per creare una credenziale in Google Cloud.

Copiare le risorse Android da Play Console

Ogni obiettivo, classifica ed evento che crei in Play Console include una risorsa Android che utilizzi quando configuri il progetto Unity.

Per ottenere le risorse Android per il tuo gioco:

  1. In Google Play Console, apri il gioco.

  2. Nella pagina Play Games Services - Configurazione (Crescita > Servizi per i giochi di Play > Configurazione e gestione > Configurazione), fai clic su Ottieni risorse.

  3. Nella finestra Risorse, fai clic sulla scheda Android(XML).

  4. Seleziona e copia i contenuti delle risorse Android (AndroidManifest.xml).

Aggiungi le risorse Android al tuo progetto Unity

Aggiungi le seguenti risorse Android al tuo progetto Unity:

  1. In Unity Hub, fai clic su Finestra > Google Play Giochi > Configurazione > Configurazione Android.

    • Nel campo Directory to save constants (Directory per salvare le costanti), inserisci il nome della cartella per il file delle costanti.
    • Nel campo Nome classe costanti, inserisci il nome della classe C# da creare, incluso il nome del namespace.

      Ad esempio, se la classe C# è id.cs e si trova in Asset > myproject > scripts > id.cs. Il nome della classe delle costanti può essere myproject.scripts.id.

    • Nel campo Definizione delle risorse, incolla i dati delle risorse Android (file AndroidManifest.xml) che hai copiato da Google Play Console.

    • (Facoltativo) Nel campo ID cliente, inserisci l'ID cliente dell'app web collegata.

      Per ottenere l'ID client del tuo gioco da Google Cloud, consulta Creare ID client.

      Questo è necessario solo se hai un backend basato sul web per il tuo gioco e hai bisogno di un codice di autenticazione del server da scambiare con un token di accesso dal server di backend oppure se hai bisogno di un token ID per consentire al giocatore di effettuare altre chiamate API non relative al gioco.

    • Fai clic su Configura. In questo modo, il gioco viene configurato con l'ID cliente e viene generata una classe C# contenente costanti per ciascuna delle risorse Android.

  2. In Unity Hub, fai clic su Finestra > Google Play Giochi > Configurazione > Configurazione delle connessioni nelle vicinanze.

    • Nel campo ID servizio di connessione nelle vicinanze, inserisci package_name.

      Utilizza lo stesso package_name utilizzato per la configurazione del progetto Unity.

    • Fai clic su Configura.

Scegli una piattaforma di social

Il plug-in Google Play Services per i giochi implementa l'interfaccia social di Unity per la compatibilità con i giochi che utilizzano già questa interfaccia durante l'integrazione con altre piattaforme. Tuttavia, alcune funzionalità sono uniche di Play Giochi e vengono offerte come estensioni dell'interfaccia social standard fornita da Unity.

È possibile accedere alle chiamate API standard tramite l'oggetto Social.Active, che è un riferimento a un'interfaccia ISocialPlatform. È possibile accedere alle estensioni non standard dei servizi per i giochi di Google Play eseguendo il casting dell'oggetto Social.Active alla classe PlayGamesPlatform, dove sono disponibili i metodi aggiuntivi.

Utilizzare il plug-in senza sostituire la piattaforma di social predefinita

Quando chiami PlayGamesPlatform.Activate, Google Play Services diventa la tua implementazione predefinita della piattaforma social, il che significa che le chiamate statiche ai metodi in Social e Social.Active verranno eseguite dal plug-in Google Play Services. Questo è il comportamento della maggior parte dei giochi che utilizzano il plug-in.

Tuttavia, se per qualche motivo vuoi mantenere accessibile l'implementazione predefinita (ad esempio per utilizzarla per inviare obiettivi e classifiche a un'altra piattaforma di social), puoi utilizzare il plug-in Google Play Services senza sostituire quello predefinito. Per:

  1. Non chiamare PlayGamesPlatform.Activate
  2. Se Xyz è il nome di un metodo che devi chiamare nella classe Social, non chiamare Social.Xyz. In alternativa, chiama PlayGamesPlatform.Instance.Xyz
  3. Non utilizzare Social.Active quando interagisci con i servizi Google Play Giochi. Utilizza invece PlayGamesPlatform.Instance.

In questo modo, puoi anche inviare punteggi e obiettivi contemporaneamente a due o più piattaforme social:

    // 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);

Verificare il servizio di accesso

Quando apri il gioco, viene tentato automaticamente un collegamento ai servizi per i giochi di Google Play utilizzando il servizio di accesso. Se la connessione va a buon fine, il gioco mostra una richiesta di accesso ed è pronto per utilizzare il plug-in dei servizi per i giochi di Google Play per Unity.

Se un utente non ha mai utilizzato i servizi per i giochi di Google Play sul proprio dispositivo, viene visualizzato automaticamente un passaggio di configurazione una tantum per creare un account Play Giochi.

Nel metodo Start dello script, ascolta il risultato del tentativo di accesso automatico, recupera lo stato di autenticazione e disattiva le funzionalità di Play Services se l'utente non ha eseguito l'accesso.

Se la versione del plug-in Unity è precedente a v11, non puoi utilizzare la funzionalità di accesso.

    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).
      }
    }

Il codice risultato è un enum che puoi utilizzare per identificare il motivo di un fallimento di accesso.

Se preferisci utilizzare la piattaforma social di Unity, puoi utilizzare in alternativa il seguente codice:

  using GooglePlayGames;

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

Non puoi effettuare chiamate all'API Google Play Services finché non ricevi un valore di ritorno positivo da Authenticate. Di conseguenza, consigliamo ai giochi di mostrare una schermata di standby fino all'esecuzione del callback per assicurarsi che gli utenti non possano iniziare a giocare finché l'autenticazione non è completata.

Utilizzare la firma dell'app di Google Play

Google gestisce e protegge la chiave di firma della tua app utilizzando la funzionalità di firma dell'app di Google Play. Puoi utilizzare la firma dell'app di Google Play per firmare i file Android App Bundle(AAB) di distribuzione ottimizzati. La firma dell'app di Google Play archivia la chiave di firma dell'app nell'infrastruttura sicura di Google. Per utilizzare la firma dell'app di Google Play, devi prima creare e scaricare un file AAB da Unity Hub. Puoi quindi caricare il file AAB su Play Console e creare una release per i test interni.

Creare un file AAB

Per creare un file AAB in Unity Hub:

  1. In Unity Hub, fai clic su File > Impostazioni di compilazione.
  2. Seleziona Crea app bundle ( Google Play).

    Per ulteriori informazioni, consulta il riferimento alle impostazioni di compilazione Android.

  3. Fai clic su Compila.

  4. Scarica il file AAB da Unity Hub.

Crea una release di test interno

Per creare una release di test interno e aggiungere tester in Play Console, svolgi i seguenti passaggi:

  1. In Google Play Console, seleziona un gioco.
  2. Vai alla pagina Test e rilascio (Test > Test interni).
  3. Fai clic su Carica e seleziona il file AAB.
  4. Nel campo Dettagli release, inserisci un nome.
  5. Fai clic su Avanti ed esamina i dettagli della release.
  6. Fai clic su Salva e pubblica.
  7. Nella scheda Tester, fai clic su Crea mailing list per aggiungere fino a 100 tester.

    Per ulteriori informazioni, consulta Test interno: consente di gestire fino a 100 tester.

  8. In Indirizzo email o URL per i feedback, inserisci un indirizzo email o un URL per fornire un feedback.

  9. Fai clic su Salva.

Verifica le credenziali di firma dell'app

  1. In Google Play Console, seleziona un gioco.
  2. Vai alla pagina Test e rilascio (Configurazione > Firma dell'app).
  3. Verifica le credenziali di firma dell'app.

Crea ed esegui il progetto

A questo punto puoi compilare ed eseguire il progetto di gioco. Quando il gioco inizia, vedrai il tentativo di accesso automatico.

È necessario un dispositivo fisico con Android con il debug USB abilitato o un emulatore in grado di eseguire il progetto sviluppato.

Recuperare i codici di autenticazione del server

Per accedere alle API Google su un server web di backend per conto del visualizzatore corrente, devi ottenere un codice di autenticazione dall'applicazione client e passarlo all'applicazione del server web. Il codice può quindi essere scambiato per un token di accesso per effettuare chiamate alle varie API. Per informazioni sulla procedura, consulta Accedi con Google per il web.

Per ottenere il codice di accesso lato server:

  1. Configura l'ID cliente web dell'applicazione web collegata al tuo gioco in Play Console.

  2. Una volta autenticato il giocatore, chiama PlayGamesPlatform.Instance.RequestServerSideAccess per ricevere il codice di accesso lato server.

  3. Passa questo codice all'applicazione del server.

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

Configurare e aggiungere funzionalità