Copyright (c) 2014 Google Inc. Alle Rechte vorbehalten.
Das Google Play Games-Plugin für Unity® ist ein Open-Source-Projekt, dessen Ziel darin besteht, ein Plugin bereitzustellen, das Spieleentwicklern die Integration eines in Unity® geschriebenen Spiels in die Google Play Games-API ermöglicht. Dieses Projekt wird jedoch in keiner Weise von Unity Technologies unterstützt oder überwacht.
Unity® ist eine Marke von Unity Technologies.
iOS ist eine Marke von Apple, Inc.
Bitte laden Sie das Paket von der Github-Release-Seite herunter.
Mit dem Google Play Games-Plugin für Unity können Sie über die soziale Schnittstelle von Unity auf die Google Play Games-API zugreifen. Das Plugin bietet Unterstützung für die folgenden Funktionen der Google Play Games API:
anmelden
Freunde
Erfolg freischalten/enthüllen/erhöhen
Ergebnis in der Bestenliste posten
Cloud-Speicher-Lesen/Schreiben
Zeigt die integrierte Benutzeroberfläche für Erfolge/Bestenlisten an
Ereignisse
Verbindungen in der Nähe
HINWEIS : Diese Version des Plugins unterstützt iOS nicht mehr. Die Spieledienste von Google Play für iOS sind veraltet und funktionieren wahrscheinlich nicht wie erwartet. Verwenden Sie in neuen Apps keine Google Play-Spieledienste für iOS. Weitere Einzelheiten finden Sie im Blogbeitrag zur Ankündigung der Einstellung.
Merkmale:
Einfache GUI-orientierte Projekteinrichtung (integriert in die Unity-GUI)
Es ist nicht erforderlich, die Player-Aktivität zu überschreiben/anzupassen
AndroidManifest.xml muss nicht überschrieben/angepasst werden
Anweisungen zur Verwendung des Plugins finden Sie in diesem Entwicklerhandbuch.
Eine Beispielanwendung, die die Verwendung von Google Play Games demonstriert, finden Sie im SmokeTest-Projekt.
Wenn Sie Ihr Projekt bereits in eine frühere Version des Plugins integriert haben und auf eine neue Version aktualisieren möchten, lesen Sie bitte die Upgrade-Anweisungen.
Um im Namen des aktuellen Players auf Google APIs auf einem Backend-Webserver zuzugreifen, müssen Sie einen Authentifizierungscode von der Clientanwendung erhalten und diesen an Ihre Webserveranwendung weitergeben. Dieser Code kann dann gegen ein Zugriffstoken ausgetauscht werden, um Aufrufe an die verschiedenen APIs durchzuführen. Weitere Einzelheiten zu diesem Ablauf finden Sie unter: Google-Anmeldung für Websites.
So erhalten Sie den Server-Authentifizierungscode:
Konfigurieren Sie die Web-Client-ID der Webanwendung, die mit Ihrem Spiel in der Play Game Console verknüpft ist.
Rufen Sie PlayGamesClientConfiguration.Builder.RequestServerAuthCode(false)
auf, wenn Sie die Konfiguration erstellen.
Rufen Sie PlayGamesPlatform.Instance.GetServerAuthCode()
auf, sobald der Spieler authentifiziert ist.
Übergeben Sie diesen Code an Ihre Serveranwendung.
PlayGamesPlatform.Instance.RequestServerSideAccess(/* forceRefreshToken= */ false,code -> { // Code an Server senden});
Es ist möglich, die Größe des Play Games Services Unity Plugins zu verringern, indem Sie mithilfe von Proguard Code für die Play Games Services-Funktionen entfernen, die Ihr Spiel nicht verwendet. Proguard entfernt den Play Games Unity-Plugin-Code für Funktionen, die in Ihrem Spiel nicht verwendet werden, sodass Ihr Spiel nur mit dem Code ausgeliefert wird, der benötigt wird, und die Auswirkungen auf die Größe durch die Nutzung der Play Games-Dienste minimiert werden.
Darüber hinaus ist es möglich, die Größe des gesamten Unity-Projekts mithilfe von Unitys Managed Code Stripping zu reduzieren, wodurch Ihr gesamtes Projekt komprimiert wird. Dies kann in Verbindung mit Proguard verwendet werden.
Gehen Sie zu File > Build Settings > Player Settings
und klicken Sie auf den Abschnitt Publishing Settings
. Wählen Sie Proguard
for Minify > Release
. Aktivieren Sie dann User Proguard File
. Wenn Sie möchten, dass das Plugin auch für Debug-Apks proguarded wird, können Sie Proguard
for Minify > Debug
wählen.
Kopieren Sie den Inhalt der Proguard-Konfiguration nach Assets/Plugins/Android/proguard-user.txt
.
Wenn Sie PlayGamesPlatform.Activate
aufrufen, wird Google Play Games zu Ihrer Standardimplementierung für soziale Plattformen, was bedeutet, dass statische Aufrufe von Methoden in Social
und Social.Active
vom Google Play Games-Plugin ausgeführt werden. Dies ist das gewünschte Verhalten für die meisten Spiele, die das Plugin verwenden.
Wenn Sie jedoch aus irgendeinem Grund die Standardimplementierung zugänglich halten möchten (z. B. um damit Erfolge und Bestenlisten an eine andere soziale Plattform zu senden), können Sie das Google Play Games-Plugin verwenden, ohne die Standardimplementierung zu überschreiben. Gehen Sie dazu wie folgt vor:
Rufen Sie nicht PlayGamesPlatform.Activate
auf
Wenn Xyz
der Name einer Methode ist, die Sie für die Social
-Klasse aufrufen möchten, rufen Sie Social.Xyz
nicht auf. Rufen Sie stattdessen PlayGamesPlatform.Instance.Xyz
auf
Verwenden Sie Social.Active
nicht, wenn Sie mit Google Play Games interagieren. Verwenden Sie stattdessen PlayGamesPlatform.Instance
.
Auf diese Weise können Sie Punkte und Erfolge sogar gleichzeitig an zwei oder mehr soziale Plattformen senden:
// Erfolg an die ursprüngliche soziale Standardplattform sendenSocial.ReportProgress("MyAchievementIdHere", 100.0f, Rückruf);// Erfolg an Google PlayPlayGamesPlatform senden.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f, Rückruf);
In diesem Abschnitt werden Personen aufgeführt, die zu diesem Projekt beigetragen haben, indem sie Code geschrieben, die Dokumentation verbessert oder Fehler behoben haben.
Vielen Dank, dass Sie herausgefunden haben, dass die Einstellung von JAVA_HOME unter Windows erforderlich ist.
antonlicht für die Behebung eines Fehlers mit dem Parametertyp showErrorDialog in der Support-Bibliothek.
pR0Ps zur Behebung eines Problems, bei dem OnAchievementsLoaded einen OPERATION_DEFERRED-Ergebniscode nicht als Erfolg akzeptierte.
friikyeu für die Unterstützung beim Debuggen eines Problems, das dazu führte, dass API-Aufrufe in die Warteschlange gestellt und nicht ausgeführt wurden, selbst wenn eine Verbindung bestand.