Inizia a utilizzare il plug-in Google Play Giochi per Unity

Questo argomento descrive come configurare il progetto Unity per l'utilizzo del plug-in di Google Play Giochi per Unity. Le attività includono la configurazione del progetto, la scelta di una piattaforma social e la configurazione dell'accesso al player.

Prima di iniziare

Installazione plug-in

  1. Scarica il plug-in utilizzando una di queste opzioni:

  2. Individua il file unitypackage nella directory current-build. Questo file è il plug-in. Ad esempio, l'aspetto dovrebbe essere simile al seguente:

      current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
    
  3. Apri il progetto di gioco in Unity.

  4. Importa il file unitypackage negli asset del progetto facendo clic sulla voce di menu Asset > Importa pacchetto > Pacchetto personalizzato.

  5. Assicurati che la tua piattaforma di sviluppo attuale sia impostata su Android.

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

    2. Seleziona Android e fai clic su Cambia piattaforma.

    3. Dovrebbe esserci una nuova voce di menu in Finestra > Google Play Giochi. Se non è presente, aggiorna gli asset facendo clic su Asset > Aggiorna, quindi prova a impostare di nuovo la piattaforma di creazione.

Scarica risorse Android da Play Console

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

  1. Scarica le risorse Android per il tuo gioco.

    1. In Play Console, apri il progetto dei servizi per i giochi di Play per il tuo gioco.

    2. Fai clic sulla scheda Obiettivi, quindi su Scarica risorse.

    3. Nella finestra Esporta risorse, fai clic sulla scheda Android.

    4. Seleziona e copia i contenuti XML.

Configura il tuo progetto Unity

  1. Aggiungi le risorse Android al tuo progetto Unity.

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

    2. Completa i seguenti passaggi nelle finestre di configurazione:

    3. Directory in cui salvare le costanti: la cartella per il file delle costanti.

    4. Nome classe costanti: il nome della classe C# da creare, incluso lo spazio dei nomi.

    5. Definizione delle risorse: incolla qui i dati delle risorse Android di Play Console.

    6. ID client web: l'ID client dell'app web collegata. È necessario solo se hai un backend basato sul web per il tuo gioco e hai bisogno di un codice di autenticazione del server per scambiare un token di accesso dal server di backend o se ti serve un token ID per il giocatore per effettuare altre chiamate API non di gioco.

    7. Fai clic su Configura. In questo modo il gioco viene configurato con l'ID client e viene generata una classe C# contenente le costanti per ogni risorsa Android.

Configurazione Android

Configura il percorso di installazione dell'SDK Android in Unity. Si trova nel menu delle preferenze, nella sezione Strumenti esterni.

Per configurare il tuo gioco Unity in modo che venga eseguito con Google Play Giochi su Android, apri innanzitutto il gestore dell'SDK Android e verifica di aver scaricato i seguenti pacchetti. Il nome dei componenti potrebbe essere diverso a seconda che utilizzi il gestore SDK da Android Studio o il gestore SDK autonomo. - Google Play Services - Android Support Library - Repository Maven locale per le librerie di assistenza (noto anche come Android Support Repository) - Google Repository - Android 6.0 (API 23) (questo non influisce sulla versione minima dell'SDK).

Dopodiché, configura il nome del pacchetto del gioco. A tale scopo, fai clic su File > Impostazioni build, seleziona la piattaforma Android e fai clic su Impostazioni del player per visualizzare la finestra delle impostazioni del player di Unity. Nella finestra, cerca l'impostazione Identificatore bundle in Altre impostazioni. Inserisci il nome del pacchetto lì (ad esempio com.example.my.awesome.game).

Per accedere ai servizi per i giochi di Play, devi firmare il file APK, assicurati di firmarlo con il certificato corretto, ovvero quello corrispondente all'impronta digitale del certificato SHA1 che hai inserito nella Console per gli sviluppatori durante la configurazione.

Dopodiché fai clic sulla voce di menu Finestra |Google Play Giochi|Configurazione - Android setup. Verrà visualizzata la schermata di configurazione di Android.

Inserisci il nome della classe Costanti. Si tratta del nome della classe completa, che verrà aggiornata (o creata) e contiene gli ID delle risorse di gioco. Il formato del nome è <namespace>.<classname>. Ad esempio, AwesomeGame.GPGSIds

Incolla i dati di definizione della risorsa. Si tratta dei dati XML di Google Play Developer Console che contengono gli ID risorsa e l'ID applicazione per Android.

Questi dati sono disponibili nella Console per gli sviluppatori di Google Play facendo clic su "Trova risorse" in qualsiasi pagina delle risorse (ad es. Obiettivi o Classifiche) e poi su Android.

Dopo aver incollato i dati nell'area di testo, fai clic sul pulsante Configura.

Nota: se usi un'applicazione web o un server di backend con il tuo gioco, puoi collegare l'applicazione web al gioco per consentire di ottenere il token ID e/o l'indirizzo email del giocatore. Per farlo, collega un'applicazione web al gioco nella Console per gli sviluppatori di Google Play e inserisci l'ID client dell'applicazione web nella finestra di dialogo di configurazione.

Istruzioni aggiuntive sullo sviluppo per Android su Windows

Se utilizzi Windows, devi assicurarti che Unity possa accedere all'installazione dell'SDK Java. Per:

  1. Imposta la variabile di ambiente JAVA_HOME sul tuo percorso di installazione dell'SDK Java (ad esempio, C:\Program Files\Java\jdk1.7.0_45).
  2. Aggiungi la cartella bin dell'SDK Java alla variabile di ambiente PATH, ad esempio C:\Program Files\Java\jdk1.7.0_45\bin
  3. Riavvia.

Come modificare le variabili di ambiente: in Windows 2000/XP/Vista/7, fai clic con il pulsante destro del mouse su Risorse del computer, Proprietà, poi vai a Proprietà avanzate di sistema (o Proprietà del sistema, fai clic sulla scheda Avanzate) e fai clic su Variabili di ambiente. Su Windows 8, premi il tasto Windows + W e cerca le variabili di ambiente. Per ulteriori informazioni, consulta la documentazione relativa alla tua versione di Windows.

Esegui il progetto

Se stai lavorando con l'esempio Smoketest, dovresti essere in grado di creare ed eseguire il progetto a questo punto. Vedrai il tentativo di accesso automatico all'avvio di Scratchtest.

Per creare ed eseguire su Android, fai clic su File > Impostazioni build, seleziona la piattaforma Android, poi Passa a piattaforma e infine Crea ed esegui.

Scegli una piattaforma social

Il plug-in di Google Play Giochi implementa l'interfaccia social di Unity, per garantire la compatibilità con i giochi che già utilizzano quell'interfaccia durante l'integrazione con altre piattaforme. Tuttavia, alcune funzionalità sono esclusive 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. Per accedere alle estensioni Google Play Giochi non standard, trasmetti l'oggetto Social.Active alla classe PlayGamesPlatform, dove sono disponibili i metodi aggiuntivi.

Utilizza il plug-in senza eseguire l'override della piattaforma social predefinita

Quando chiami PlayGamesPlatform.Activate, Google Play Giochi 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 di Google Play Giochi. Questo è il comportamento desiderato per la 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 una piattaforma social diversa), puoi usare il plug-in di Google Play Giochi senza sostituire quello predefinito. Per:

  1. Non chiamare PlayGamesPlatform.Activate
  2. Se Xyz è il nome di un metodo che vuoi chiamare nella classe Social, non chiamare Social.Xyz. Chiama invece PlayGamesPlatform.Instance.Xyz
  3. Non usare Social.Active per interagire con Google Play Giochi. Utilizza invece PlayGamesPlatform.Instance.

In questo modo puoi anche inviare punteggi e risultati 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);

Verifica il servizio di accesso

All'apertura del gioco, viene eseguito automaticamente un tentativo di connessione ai servizi per i giochi di Play tramite il servizio di accesso. Se la connessione ha esito positivo, il gioco mostra una richiesta di accesso ed è pronto per utilizzare il plug-in Google Play Giochi per Unity.

Se un utente non ha mai utilizzato Google Play Giochi sul proprio dispositivo, viene indirizzato automaticamente alla schermata di configurazione unica per creare un account Play Giochi.

Nel metodo Start dello script, ascolta il risultato del tentativo di accesso automatico, recupera lo stato dell'autenticazione e disattiva le funzionalità dei servizi di Play Giochi se l'utente non ha eseguito l'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'enumerazione che puoi utilizzare per identificare il motivo di un errore di accesso.

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

  using GooglePlayGames;

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

Non puoi effettuare chiamate all'API Google Play Giochi finché non ottieni un valore restituito da Authenticate. Di conseguenza, consigliamo di mostrare ai giochi una schermata di standby finché non viene chiamato il callback, in modo che gli utenti non possano iniziare a giocare fino al completamento dell'autenticazione.

Recuperare i codici di autenticazione del server

Per accedere alle API di Google su un server web di backend per conto del player corrente, devi ottenere un codice di autenticazione dall'applicazione client e passarlo all'applicazione del server web. Il codice può essere scambiato con un token di accesso per effettuare chiamate alle varie API. Per informazioni sul flusso di lavoro, consulta Accedi con Google per i siti web.

Per ottenere il codice di accesso lato server:

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

  2. Chiama PlayGamesPlatform.Instance.RequestServerSideAccess dopo aver autenticato il player per ottenere il codice di accesso lato server.

  3. Passa questo codice all'applicazione server.

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

Configurare e aggiungere funzionalità