In diesem Dokument erfahren Sie, wie Sie Ihr Unity-Projekt für die Verwendung des Google Play Games-Plug-ins für Unity einrichten. Sie lernen, wie Sie das Plug-in installieren und Ihr Unity-Projekt konfigurieren. Außerdem wird beschrieben, wie Sie den Authentifizierungsdienst überprüfen.
Hinweis
Prüfen Sie die Softwareanforderungen. Richten Sie die Play Console ein und installieren Sie den Unity-Editor.
Richten Sie die Play Console für Ihr Spiel ein.
Installieren Sie den Unity-Editor und erstellen Sie Ihr Spiel in Unity.
Plug-in-Installation
So laden Sie das Google Play Games-Plug-in für Unity herunter und installieren es im Unity-Editor:
Laden Sie das GitHub-Repository herunter.
Suchen Sie im Verzeichnis
current-buildnach der Dateiunitypackage. Diese Datei stellt das Plug-in dar. Sie sollte etwa so aussehen:current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
Unity-Projekt einrichten
So richten Sie ein Unity-Projekt in den Player-Einstellungen ein:
Öffnen Sie Ihr Spielprojekt.
Klicken Sie im Unity-Editor auf Assets > Import Package > Custom Package (Assets > Paket importieren > Benutzerdefiniertes Paket), um die Datei
unitypackagein die Assets Ihres Projekts zu importieren.Achten Sie darauf, dass Ihre aktuelle Build-Plattform auf Android festgelegt ist.
Klicken Sie im Hauptmenü auf File > Build Settings (Datei > Build-Einstellungen).
Wählen Sie Android aus und klicken Sie auf Switch Platform (Plattform wechseln).
Unter Window > Google Play Games (Fenster > Google Play Games) sollte ein neuer Menüpunkt vorhanden sein. Wenn nicht, aktualisieren Sie die Assets, indem Sie auf Assets > Refresh (Assets > Aktualisieren) klicken, und versuchen Sie dann noch einmal, die Build-Plattform festzulegen.
Klicken Sie im Unity-Editor auf File > Build Settings > Player Settings > Other Settings (Datei > Build-Einstellungen > Player-Einstellungen > Weitere Einstellungen).
Wählen Sie im Feld Target API level (Ziel-API-Level) eine Version aus.
Geben Sie im Feld Scripting backend (Skripting-Backend)
IL2CPPein.Wählen Sie im Feld Target architectures (Zielarchitekturen) einen Wert aus.
Notieren Sie sich den Paketnamen package_name.Sie können diese Informationen später verwenden.
Neuen Schlüsselspeicher erstellen
Zum Validieren Ihrer Anmeldedaten benötigen Sie einen Schlüssel. Gehen Sie so vor:
- Klicken Sie im Unity-Editor auf File > Build settings > Player settings (Datei > Build-Einstellungen > Player-Einstellungen).
- Klicken Sie im Bereich Publishing settings (Veröffentlichungseinstellungen) auf Keystore manager (Schlüsselspeicherverwaltung).
- Klicken Sie im Fenster Keystore manager (Schlüsselspeicherverwaltung) auf Keystore > Create new > Anywhere (Schlüsselspeicher > Neu erstellen > Überall).
- Wählen Sie einen Ordner aus und geben Sie einen Namen für den Schlüsselspeicher ein.
- Geben Sie im Feld Password (Passwort) ein Passwort ein und bestätigen Sie es.
- Klicken Sie auf Add key (Schlüssel hinzufügen).
Notieren Sie sich den Ordnernamen. Sie können diesen Namen verwenden, um Anmeldedaten in Google Cloud zu erstellen.
Android-Ressourcen aus der Play Console kopieren
So rufen Sie die Android-Ressourcen für Ihr Spiel ab:
Öffnen Sie das Spiel in der Google Play Console.
Klicken Sie auf der Seite Play Games-Dienste – Konfiguration (Nutzerwachstum > Play Games-Dienste > Einrichtung und Verwaltung > Konfiguration) auf Ressourcen abrufen.
Klicken Sie im Fenster Ressourcen auf den Tab Android(XML).
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:
Klicken Sie im Unity-Editor auf Window > Google Play Games > Setup > Android Setup (Fenster > Google Play Games > Einrichtung > Android-Einrichtung).
- Geben Sie im Feld Directory to save constants (Verzeichnis zum Speichern von Konstanten) den Ordnernamen für die Konstantendatei ein.
Geben Sie im Feld Constants class name (Name der Konstantenklasse) den Namen der zu erstellenden C#-Klasse einschließlich des Namespace ein.
Wenn die C#-Klasse beispielsweise
id.csist und sich unter Assets > myproject > scripts > id.cs (Assets > meinprojekt > Skripts > id.cs) befindet, kann der Name der Konstantenklassemyproject.scripts.idsein.Fügen Sie im Feld Resources definition (Ressourcendefinition) die Android-Ressourcendaten (Datei
AndroidManifest.xml) 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 Ihr Spiel aus Google Cloud finden Sie unter Client-IDs erstellen.
Dies ist nur erforderlich, wenn Sie ein webbasiertes Backend für Ihr Spiel haben und einen Serverautorisierungscode benötigen, der vom Backend-Server gegen ein Zugriffstoken ausgetauscht wird, 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.
Klicken Sie im Unity-Editor auf Window > Google Play Games > Setup > Nearby Connections Setup (Fenster > Google Play Games > Einrichtung > Nearby Connections-Einrichtung).
Geben Sie im Feld Nearby connection service ID den Wert package_name ein.
Verwenden Sie denselben Wert für package_name, den Sie beim Einrichten des Unity-Projekts verwendet haben.
Klicken Sie auf Einrichten.
Soziale Plattform auswählen
Das Google Play Games-Dienste-Plug-in implementiert die Social Interface, von Unity, um die Kompatibilität mit Spielen zu gewährleisten, die diese Schnittstelle bereits bei der Einbindung in andere Plattformen verwenden. Einige Funktionen sind jedoch nur für Play Games verfügbar und werden als Erweiterungen der von Unity bereitgestellten Standard-Social Interface angeboten.
Auf die Standard-API-Aufrufe kann über das Objekt Social.Active zugegriffen werden, das eine Referenz auf eine ISocialPlatform -Schnittstelle ist. Auf die nicht standardmäßigen Google Play Games-Dienste-Erweiterungen kann zugegriffen werden, indem das Objekt Social.Active in die Klasse PlayGamesPlatform umgewandelt wird, in der die zusätzlichen Methoden verfügbar sind.
Plug-in verwenden, ohne die Standard-Social-Plattform zu überschreiben
Wenn Sie PlayGamesPlatform.Activate aufrufen, werden die Google Play Games-Dienste zu Ihrer Standard-Social-Plattform-Implementierung. Das bedeutet, dass das Google Play Games-Dienste-Plug-in statische Aufrufe an Methoden in Social und Social.Active ausführt. Das ist das erwartete Verhalten für die meisten Spiele, die das Plug-in verwenden.
Wenn Sie jedoch aus irgendeinem Grund die Standardimplementierung weiterhin verwenden möchten (z. B. um Erfolge und Bestenlisten an eine andere Social-Plattform zu senden), können Sie das Google Play Games-Dienste-Plug-in verwenden, ohne die Standardimplementierung zu überschreiben. Gehen Sie dazu so vor:
- Rufen Sie die Methode
PlayGamesPlatform.Activateauf. - Wenn
Xyzder Name einer Methode ist, die Sie in der KlasseSocialaufrufen, rufen Sie nichtSocial.Xyzauf. Rufen Sie stattdessenPlayGamesPlatform.Instance.Xyzauf. - Verwenden Sie die
PlayGamesPlatform.InstanceProperty anstelle vonSocial.Active, wenn Sie mit den Google Play Games-Diensten interagieren.
So können Sie Punktestände und Erfolge gleichzeitig an zwei oder mehr Social-Plattformen senden:
// 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);
Authentifizierungsdienst überprüfen
Wenn Ihr Spiel geöffnet wird, wird automatisch eine Verbindung zu den Play Games-Diensten über die Plattformauthentifizierung versucht. Wenn die Verbindung erfolgreich ist, wird in Ihrem Spiel eine Anmeldeaufforderung angezeigt und Sie können das Google Play Games-Dienste-Plug-in für Unity verwenden.
Wenn ein Nutzer die Google Play Games-Dienste noch nie auf seinem Gerät verwendet hat, wird er automatisch durch einen einmaligen Einrichtungsbildschirm geführt, um ein Play Games-Konto zu erstellen.
Erfassen Sie in der Methode Start Ihres Skripts das Ergebnis des automatischen Authentifizierungsversuchs, rufen Sie den Authentifizierungsstatus ab und deaktivieren Sie die Play Games-Dienste-Funktionen, wenn der Nutzer nicht authentifiziert ist.
Wenn die Unity-Plug-in-Version vor v11 liegt, können Sie die Authentifizierungsfunktion 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 authenticate. Clicking it should call
// PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
}
}
Der Ergebniscode ist ein Enum, mit dem Sie den Grund für einen Authentifizierungsfehler ermitteln können.
Wenn Sie die Social-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 API-Aufrufe an die Google Play Games-Dienste ausführen, wenn Sie einen erfolgreichen Rückgabewert von Authenticate erhalten. Daher empfehlen wir, dass Spiele einen Standby-Bildschirm anzeigen, bis der Callback aufgerufen wird, damit Nutzer das Spiel erst starten können, wenn die Authentifizierung abgeschlossen ist.
Automatisch ausgelöste Profilerstellung verhindern
Sie können die automatisch ausgelösten Aufforderungen zur Profilerstellung über die Manifestdatei deaktivieren. So können Nutzer ohne Play Games-Dienste-Profil das Spiel weiterhin laden, ohne aufgefordert zu werden, ein Play Games-Dienste-Profil zu erstellen. Weitere Informationen finden Sie unter Optionen für die Profilerstellung.
Damit Sie diese Funktion verwenden können, müssen die folgenden Bedingungen erfüllt sein:
- Auf dem Gerät ist für keines der angemeldeten Google-Konten ein Play Games-Dienste-Profil vorhanden.
- Ihr Spiel ist in das Play Games-Dienste
Plug-in für Unity
2.1.0oder höher eingebunden.
Fügen Sie in der
AndroidManifest.xmlDatei dascom.google.android.gms.games.SUPPRESS_GAME_PROFILE_CREATIONTag im<meta-data>Element und Attribute im<application>Element hinzu:<application> ... <meta-data android:name="com.google.android.gms.games.SUPPRESS_GAME_PROFILE_CREATION" android:value="true" /> ... </application>
Wenn Sie dieses Flag auf „true“ setzen, wird den Play Games-Diensten mitgeteilt, dass Ihr Spiel den Prozess zur Profilerstellung übernimmt. Folglich wird die Benutzeroberfläche zur Profilerstellung für Nutzer auf dem Gerät, die kein Play Games-Dienste-Profil haben, nicht automatisch angezeigt.
Um Fälle zu verarbeiten, in denen ein Nutzer aufgrund eines fehlenden Play Games-Dienste-Profils nicht authentifiziert ist, können Sie PlayGamesPlatform.Instance.IsAuthenticated() verwenden. Diese Methode gibt
falsezurück, da die Profilerstellung fehlschlägt. Um dieses Problem zu beheben, starten Sie den Profil erstellungsprozess, indem Sie `PlayGamesPlatform.Instance.ManuallyAuthenticate()` aufrufen.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) => { // ... }); }Nachdem Sie das Unterdrückungstag hinzugefügt haben, überprüfen Sie die Ergänzung im Fenster
logcat. Dielogcat-Ausgabe enthält eine Meldung ähnlich der folgenden: „Game opted out of automatic profile creation prompt (using manifest)“ (Spiel hat die automatische Aufforderung zur Profilerstellung deaktiviert (über Manifest)).
Die Play App-Signatur verwenden
Google verwaltet und schützt den Signaturschlüssel Ihrer App mit der Play App-Signatur. Sie können die Play App-Signatur verwenden, um optimierte Android App Bundle-Dateien für den Vertrieb zu 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 im Unity-Editor erstellen und herunterladen. Anschließend können Sie die AAB-Datei in die Play Console hochladen und einen internen Testrelease erstellen.
AAB-Datei erstellen
So erstellen Sie eine AAB-Datei im Unity-Editor:
- Klicken Sie im Unity-Editor auf File > Build settings (Datei > Build-Einstellungen).
Wählen Sie Build App Bundle ( Google Play ) (App Bundle erstellen (Google Play)) aus.
Weitere Informationen finden Sie in der Referenz zu den Android-Build-Einstellungen.
Klicken Sie auf Erstellen.
Laden Sie die AAB-Datei aus dem Unity-Editor herunter.
Internen Testrelease erstellen
So erstellen Sie einen internen Testrelease und fügen Tester in der Play Console hinzu:
- Wählen Sie in der Google Play Console ein Spiel aus.
- Rufen Sie die Seite Test und Release auf (Test > Interner Test).
- Klicken Sie auf Hochladen und wählen Sie die AAB-Datei aus.
- Geben Sie im Feld Release-Details einen Namen ein.
- Klicken Sie auf Weiter und überprüfen Sie die Release-Details.
- Klicken Sie auf Speichern und veröffentlichen.
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.
Geben Sie unter URL oder E-Mail-Adresse für Feedback eine Feedback-URL oder eine E-Mail Adresse ein, um Feedback zu geben.
Klicken Sie auf Speichern.
Anmeldedaten für die App-Signatur überprüfen
- Wählen Sie in der Google Play Console ein Spiel aus.
- Rufen Sie die Seite Test und Release auf (Einrichtung > App-Signatur).
- Überprü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, sehen Sie den automatischen Authentifizierungsversuch.
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
Um im Namen des aktuellen Spielers auf einem Backend-Webserver auf Google APIs zuzugreifen, müssen Sie einen Authentifizierungscode von der Clientanwendung abrufen und an Ihre Webserveranwendung übergeben. Der Code kann dann gegen ein Zugriffstoken ausgetauscht werden, um Aufrufe an die verschiedenen APIs auszuführen. Informationen zum Workflow finden Sie unter Über Google anmelden für das Web.
So rufen Sie den serverseitigen Zugriffscode ab:
- Fügen Sie die Webclient-ID für Ihr Spiel in der Play Console hinzu.
- Wählen Sie in der Google Play Console Ihr Spiel aus.
- Klicken Sie auf der Seite Konfiguration (Nutzerwachstum > Play Games-Dienste > Einrichtung und Verwaltung > Konfiguration) auf Anmeldedaten hinzufügen.
- Wählen Sie auf der Seite Anmeldedaten hinzufügen die Option Gameserver aus.
- Generieren Sie eine OAuth 2.0-Client-ID.
- Notieren Sie sich den Wert der Client-ID. Sie müssen diesen Wert später angeben.
Fügen Sie die Webclient-ID im Unity Hub hinzu.
- Richten Sie im Unity Hub Google Play Games für Unity ein und authentifizieren Sie sich.
- Rufen Sie im Unity Hub Window > Google Play Games > Setup > Android Setup (Fenster > Google Play Games > Einrichtung > Android-Einrichtung) auf.
- Geben Sie den Wert der Client-ID ein.
Rufen Sie den Serverautorisierungscode für zusätzliche Bereiche ab.
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... });
Funktionen einrichten und hinzufügen
Funktionen mit den Play Games-Dienste-APIs zu Ihrem Spiel hinzufügen:
Recall API für Unity (wird nur für die Unity-Plug-in-Version v11 und höher unterstützt)