Google Play Spiele für Unity einrichten und anmelden

In diesem Dokument erfahren Sie, wie Sie Ihr Unity-Projekt so einrichten, dass das Google Play Spiele-Plug-in für Unity verwendet wird. Sie erfahren, wie Sie das Plug-in installieren und Ihr Unity-Projekt konfigurieren. Außerdem wird beschrieben, wie Sie den Anmeldedienst bestätigen.

Hinweis

Sehen Sie sich die Softwareanforderungen an. Richten Sie die Play Console ein und installieren Sie den Unity Hub.

Plug-in-Installation

So laden Sie das Google Play Spiele-Plug-in für Unity herunter und installieren es in Unity Hub:

  1. Laden Sie das GitHub-Repository herunter.

  2. Suchen Sie im Verzeichnis current-build nach der Datei unitypackage. Diese Datei stellt das Plug-in dar. Sie sollte beispielsweise so aussehen:

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

Unity-Projekt einrichten

So richten Sie ein Unity-Projekt in den Player-Einstellungen ein:

  1. Öffnen Sie Ihr Spielprojekt.

  2. Klicken Sie im Unity Hub auf Assets > Import Package > Custom Package, um die unitypackage-Datei in die Assets Ihres Projekts zu importieren.

  3. Die aktuelle Build-Plattform muss auf Android festgelegt sein.

    1. Klicken Sie im Hauptmenü auf Datei > Build-Einstellungen.

    2. Wählen Sie Android aus und klicken Sie auf Plattform wechseln.

    3. Unter Fenster > Google Play Spiele sollte ein neuer Menüpunkt angezeigt werden. Falls nicht, aktualisieren Sie die Assets, indem Sie auf Assets > Aktualisieren klicken. Versuchen Sie dann noch einmal, die Build-Plattform festzulegen.

  4. Klicken Sie im Unity Hub auf Datei > Build-Einstellungen > Player-Einstellungen > Sonstige Einstellungen.

  5. Wählen Sie im Feld Ziel-API-Ebene eine Version aus.

  6. Geben Sie im Feld Scripting-Backend IL2CPP ein.

  7. Wählen Sie im Feld Zielarchitekturen einen Wert aus.

  8. Notieren Sie sich den Paketnamen package_name.Sie können diese Informationen später verwenden.

Die Playereinstellungen in deinem Unity-Projekt
Die Player-Einstellungen in deinem Unity-Projekt.

Neuen Schlüsselspeicher erstellen

Zum Bestätigen Ihrer Anmeldedaten benötigen Sie einen Schlüssel. Gehen Sie dazu so vor:

  1. Klicken Sie im Unity Hub auf Datei > Build-Einstellungen > Player-Einstellungen.
  2. Klicken Sie im Bereich Veröffentlichungseinstellungen auf Keystore-Manager.
    1. Klicken Sie im Fenster Keystore-Manager auf Keystore > Neu erstellen > Anywhere.
    2. Wählen Sie einen Ordner und einen Namen für den Schlüsselspeicher aus.
    3. Geben Sie im Feld Passwort ein Passwort ein und bestätigen Sie es.
    4. Klicken Sie auf Schlüssel hinzufügen.

Notieren Sie sich den Ordnernamen. Mit diesem Namen können Sie in Google Cloud Anmeldedaten erstellen.

Android-Ressourcen aus der Play Console kopieren

Jeder Erfolg, jede Bestenliste und jedes Ereignis, das Sie in der Play Console erstellen, enthält eine Android-Ressource, die Sie beim Einrichten Ihres Unity-Projekts verwenden.

So rufen Sie die Android-Ressourcen für Ihr Spiel ab:

  1. Öffnen Sie das Spiel in der Google Play Console.

  2. Klicken Sie auf der Seite Play-Spieldienste – Konfiguration (Wachstum > Play-Spieldienste > Einrichtung und Verwaltung > Konfiguration) auf Ressourcen abrufen.

  3. Klicken Sie im Fenster Ressourcen auf den Tab Android(XML).

  4. Wählen Sie den Inhalt der Android-Ressourcen (AndroidManifest.xml) aus und kopieren Sie ihn.

Android-Ressourcen zu Ihrem Unity-Projekt hinzufügen

Fügen Sie Ihrem Unity-Projekt die folgenden Android-Ressourcen hinzu:

  1. Klicken Sie im Unity Hub auf Fenster > Google Play Spiele > Einrichtung > Android-Einrichtung.

    • Geben Sie im Feld Verzeichnis zum Speichern von Konstanten den Namen des Ordners für die Konstantendatei ein.
    • Geben Sie im Feld Name der Konstantenklasse den Namen der zu erstellenden C#-Klasse einschließlich des Namespace ein.

      Angenommen, die C#-Klasse lautet id.cs und befindet sich unter Assets > meinprojekt > Scripts > id.cs. Der Name der Konstantenklasse kann myproject.scripts.id sein.

    • Fügen Sie in das Feld Ressourcendefinition die Android-Ressourcendaten (AndroidManifest.xml-Datei) ein, die Sie aus der Google Play Console kopiert haben.

    • Optional: Geben Sie im Feld Client-ID die Client-ID der verknüpften Webanwendung ein.

      Informationen zum Abrufen der Client-ID für dein Spiel in Google Cloud findest du unter Client-IDs erstellen.

      Dies ist nur erforderlich, wenn Sie ein webbasiertes Backend für Ihr Spiel haben und einen Serverautorisierungscode benötigen, um ihn gegen ein Zugriffstoken vom Backendserver einzutauschen, oder wenn Sie ein ID-Token für den Spieler benötigen, um andere API-Aufrufe auszuführen, die nicht mit dem Spiel zusammenhängen.

    • Klicken Sie auf Einrichten. Dadurch wird Ihr Spiel mit der Client-ID konfiguriert und eine C#-Klasse generiert, die Konstanten für jede Ihrer Android-Ressourcen enthält.

  2. Klicken Sie im Unity Hub auf Fenster > Google Play Spiele > Einrichtung > Einrichtung von Verbindungen in der Nähe.

    • Geben Sie im Feld Nearby Connection Service ID (ID des Dienstes für Nearby Connections) die package_name ein.

      Verwenden Sie dieselbe package_name, die Sie beim Einrichten des Unity-Projekts verwendet haben.

    • Klicken Sie auf Einrichten.

Social-Media-Plattform auswählen

Das Google Play Spieledienste-Plug-in implementiert die soziale Benutzeroberfläche von Unity, um Spiele zu unterstützen, die diese Benutzeroberfläche bereits bei der Einbindung in andere Plattformen verwenden. Einige Funktionen sind jedoch nur für Play Spiele verfügbar und werden als Erweiterungen der standardmäßigen Social-Media-Oberfläche von Unity angeboten.

Auf die Standard-API-Aufrufe kann über das Objekt Social.Active zugegriffen werden, das eine Referenz auf eine ISocialPlatform-Schnittstelle ist. Sie können auf die nicht standardmäßigen Erweiterungen der Google Play-Spieldienste zugreifen, indem Sie das Objekt Social.Active in die Klasse PlayGamesPlatform umwandeln, in der die zusätzlichen Methoden verfügbar sind.

Plug-in verwenden, ohne die Standard-Plattform für soziale Medien zu überschreiben

Wenn Sie PlayGamesPlatform.Activate aufrufen, werden die Google Play-Spieldienste zur Standardimplementierung der sozialen Plattform. Das bedeutet, dass statische Aufrufe von Methoden in Social und Social.Active vom Google Play-Spieldienste-Plug-in ausgeführt werden. Das ist bei den meisten Spielen mit dem Plug-in der Fall.

Wenn Sie die Standardimplementierung aus irgendeinem Grund zugänglich lassen möchten, z. B. um damit Erfolge und Bestenlisten an eine andere soziale Plattform zu senden, können Sie das Google Play Spiele-Dienste-Plug-in verwenden, ohne die Standardimplementierung zu überschreiben. Ziel

  1. PlayGamesPlatform.Activate nicht anrufen
  2. Wenn Xyz der Name einer Methode ist, die Sie in der Klasse Social aufrufen müssen, rufen Sie Social.Xyz nicht auf. Rufen Sie stattdessen PlayGamesPlatform.Instance.Xyz an.
  3. Verwenden Sie Social.Active nicht, wenn Sie mit Google Play-Spieldiensten interagieren. Verwenden Sie stattdessen PlayGamesPlatform.Instance.

So kannst du deine Ergebnisse und Erfolge sogar gleichzeitig auf zwei oder mehr sozialen Plattformen veröffentlichen:

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

Anmeldedienst prüfen

Wenn Ihr Spiel geöffnet wird, wird automatisch über den Anmeldedienst eine Verbindung zu den Play-Spieldiensten hergestellt. Wenn die Verbindung erfolgreich hergestellt wurde, wird in Ihrem Spiel eine Anmeldeaufforderung angezeigt und das Plug-in für die Google Play-Spieldienste für Unity kann verwendet werden.

Wenn ein Nutzer die Google Play Spiele-Dienste noch nie auf seinem Gerät verwendet hat, wird er automatisch zum einmaligen Einrichtungsbildschirm weitergeleitet, um ein Play Spiele-Konto zu erstellen.

Überprüfen Sie in der Start-Methode Ihres Scripts das Ergebnis des automatischen Anmeldeversuchs, rufen Sie den Authentifizierungsstatus ab und deaktivieren Sie die Play Spiele-Dienstfunktionen, wenn der Nutzer nicht angemeldet ist.

Wenn die Unity-Plug-in-Version älter als v11 ist, kannst du die Anmeldefunktion nicht verwenden.

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

Der Ergebniscode ist ein Enum, mit dem du den Grund für einen Anmeldefehler ermitteln kannst.

Wenn Sie die Social-Media-Plattform von Unity bevorzugen, können Sie alternativ den folgenden Code verwenden:

  using GooglePlayGames;

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

Sie können erst dann Google Play-Spieldienste-API-Aufrufe ausführen, wenn Sie einen erfolgreichen Rückgabewert von Authenticate erhalten. Wir empfehlen daher, in Spielen einen Standbybildschirm einzublenden, bis der Rückruf aufgerufen wird, damit Nutzer das Spiel erst starten können, wenn die Authentifizierung abgeschlossen ist.

Die Play App-Signatur verwenden

Google verwaltet und schützt den Signaturschlüssel Ihrer App mit Play App Signing. Mit Play App Signing können Sie optimierte Android App Bundle-Dateien(AAB) für den Vertrieb signieren. Mit der Play App-Signatur wird Ihr App-Signaturschlüssel in der sicheren Infrastruktur von Google gespeichert. Wenn Sie die Play App-Signatur verwenden möchten, müssen Sie zuerst eine AAB-Datei erstellen und aus Unity Hub herunterladen. Sie können die AAB-Datei dann in die Play Console hochladen und einen Release für interne Tests erstellen.

AAB-Datei erstellen

So erstellen Sie eine AAB-Datei in Unity Hub:

  1. Klicken Sie im Unity Hub auf Datei > Build-Einstellungen.
  2. Wählen Sie App-Bundle erstellen ( Google Play) aus.

    Weitere Informationen finden Sie unter Referenz zu Android-Build-Einstellungen.

  3. Klicken Sie auf Build.

  4. Laden Sie die AAB-Datei aus dem Unity Hub herunter.

Internen Testrelease erstellen

So erstellen Sie eine Version für interne Tests und fügen in der Play Console Tester hinzu:

  1. Wählen Sie in der Google Play Console ein Spiel aus.
  2. Rufen Sie die Seite Testen und veröffentlichen auf (Testen > Interner Test).
  3. Klicken Sie auf Hochladen und wählen Sie die AAB-Datei aus.
  4. Geben Sie im Feld Release-Details einen Namen ein.
  5. Klicken Sie auf Weiter und überprüfen Sie die Veröffentlichungsdetails.
  6. Klicken Sie auf Speichern und veröffentlichen.
  7. Klicken Sie auf dem Tab Tester auf E-Mail-Liste erstellen, um bis zu 100 Tester hinzuzufügen.

    Weitere Informationen finden Sie unter Interner Test: Bis zu 100 Tester verwalten.

  8. Geben Sie im Feld URL oder E-Mail-Adresse für Feedback eine Feedback-URL oder E-Mail-Adresse ein, um Feedback zu geben.

  9. Klicken Sie auf Speichern.

Anmeldedaten für die App-Signatur überprüfen

  1. Wählen Sie in der Google Play Console ein Spiel aus.
  2. Rufen Sie die Seite Testen und veröffentlichen auf (Einrichtung > App-Signatur).
  3. Prüfen Sie Ihre Anmeldedaten für die App-Signatur.

Projekt erstellen und ausführen

Sie können das Spielprojekt jetzt erstellen und ausführen. Wenn das Spiel gestartet wird, wird der automatische Anmeldeversuch angezeigt.

Sie benötigen ein physisches Android-Gerät mit aktiviertem USB-Debugging oder einen Emulator, auf dem das entwickelte Projekt ausgeführt werden kann.

Serverauthentifizierungscodes abrufen

Wenn du im Namen des aktuellen Spielers auf Google APIs auf einem Back-End-Webserver zugreifen möchtest, musst du einen Authentifizierungscode von der Clientanwendung abrufen und an deine Webserveranwendung weitergeben. Der Code kann dann gegen ein Zugriffstoken eingetauscht werden, um die verschiedenen APIs aufzurufen. Informationen zum Workflow finden Sie unter Über Google anmelden für das Web.

So rufen Sie den serverseitigen Zugriffscode ab:

  1. Konfigurieren Sie die Webclient-ID der Webanwendung, die mit Ihrem Spiel verknüpft ist, in der Play Console.

  2. Rufe PlayGamesPlatform.Instance.RequestServerSideAccess auf, sobald der Spieler authentifiziert ist, um den serverseitigen Zugriffscode abzurufen.

  3. Übergeben Sie diesen Code an Ihre Serveranwendung.

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

Funktionen einrichten und hinzufügen