W tym dokumencie znajdziesz instrukcje konfigurowania projektu w Unity pod kątem korzystania z wtyczki Gier Google Play do Unity. Dowiesz się, jak zainstalować wtyczkę i skonfigurować projekt w Unity. Opisano w nim też, jak zweryfikować usługę logowania.
Zanim zaczniesz
Sprawdź wymagania dotyczące oprogramowania. Skonfiguruj Konsolę Play i zainstaluj Unity Hub.
Skonfiguruj Konsolę Play dla swojej gry.
Zainstaluj Unity Hub i stwórz grę w Unity.
Instalacja wtyczki
Aby pobrać i zainstalować wtyczkę Gry Google Play do Unity, wykonaj te czynności w Unity Hub:
Pobierz repozytorium GitHub.
W katalogu
current-build
znajdź plikunitypackage
. Ten plik reprezentuje wtyczkę. Powinien on wyglądać podobnie do tego:current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
Konfigurowanie projektu Unity
Aby skonfigurować projekt Unity w ustawieniach odtwarzacza, wykonaj te czynności:
Otwórz projekt gry.
W Unity Hub kliknij Assets > Import Package > Custom Package (Zasoby > Importuj pakiet > Własny pakiet), aby zaimportować plik
unitypackage
do zasobów projektu.Sprawdź, czy bieżąca platforma kompilacji jest ustawiona na Android.
W menu głównym kliknij Plik > Ustawienia kompilacji.
Wybierz Android i kliknij Przełącz platformę.
W menu Okno > Gry Google Play powinna pojawić się nowa pozycja. Jeśli nie, odśwież zasoby, klikając Zasoby > Odśwież, a następnie spróbuj ponownie ustawić platformę kompilacji.
W Unity Hub kliknij File > Build Settings > Player Settings > Other Settings (Plik > Ustawienia kompilacji > Ustawienia odtwarzacza > Inne ustawienia).
W polu Docelowy poziom API wybierz wersję.
W polu Backend skryptów wpisz
IL2CPP
.W polu Architektury docelowe wybierz wartość.
Zanotuj nazwę pakietu package_name.Te informacje możesz wykorzystać później.

Tworzenie nowego magazynu kluczy
Aby potwierdzić swoje uprawnienia, potrzebujesz klucza. Wykonaj te czynności:
- W Unity Hub kliknij File (Plik) > Build settings (Ustawienia kompilacji) > Player settings (Ustawienia odtwarzacza).
- W sekcji Ustawienia publikowania kliknij Menedżer kluczy.
- W oknie Menedżer magazynu kluczy kliknij Magazyn kluczy > Utwórz nowy > W dowolnym miejscu.
- Wybierz folder i podaj nazwę magazynu kluczy.
- W polu Hasło wpisz hasło i potwierdź je.
- Kliknij Dodaj klucz.
Zanotuj nazwę folderu. Możesz użyć tej nazwy, aby utworzyć dane logowania w Google Cloud.
Kopiowanie zasobów Androida z Konsoli Play
Każde osiągnięcie, tabela wyników i wydarzenie utworzone w Konsoli Play zawiera zasób Androida, którego używasz podczas konfigurowania projektu Unity.
Aby uzyskać zasoby Androida dla swojej gry, wykonaj te czynności:
W Konsoli Google Play otwórz grę.
Na stronie Usługi gier Play – konfiguracja (Rozwój > Usługi gier Play > Konfiguracja i zarządzanie > Konfiguracja) kliknij Pobierz zasoby.
W oknie Zasoby kliknij kartę Android(XML).
Wybierz i skopiuj zawartość zasobów Androida (
AndroidManifest.xml
).
Dodawanie zasobów Androida do projektu Unity
Dodaj do projektu w Unity te zasoby Androida:
W Unity Hub kliknij Window > Google Play Games > Setup > Android Setup (Okno > Gry Google Play > Konfiguracja > Konfiguracja Androida).
- W polu Katalog do zapisywania stałych wpisz nazwę folderu, w którym ma być zapisany plik stałych.
W polu Nazwa klasy stałych wpisz nazwę klasy C# do utworzenia, w tym przestrzeń nazw.
Jeśli na przykład klasa C# to
id.cs
i znajduje się w folderze Assets > myproject > scripts > id.cs. Nazwa klasy stałych może mieć wartośćmyproject.scripts.id
.W polu Definicja zasobów wklej dane zasobów Androida (plik
AndroidManifest.xml
) skopiowane z Konsoli Google Play.Opcjonalnie: w polu Identyfikator klienta wpisz identyfikator klienta połączonej aplikacji internetowej.
Informacje o tym, jak uzyskać identyfikator klienta gry w Google Cloud, znajdziesz w sekcji Tworzenie identyfikatorów klientów.
Jest to potrzebne tylko wtedy, gdy Twoja gra ma backend internetowy i potrzebujesz kodu autoryzacji serwera, aby wymienić go na token dostępu na serwerze backendu, lub gdy potrzebujesz tokena identyfikatora gracza, aby wykonywać inne wywołania interfejsu API niezwiązane z grą.
Kliknij Konfiguruj. Spowoduje to skonfigurowanie gry za pomocą identyfikatora klienta i wygenerowanie klasy C#, która zawiera stałe dla każdego z zasobów Androida.
W Unity Hub kliknij Window > Google Play Games > Setup > Nearby Connections Setup (Okno > Gry Google Play > Konfiguracja > Konfiguracja połączeń w pobliżu).
W polu Identyfikator usługi połączenia w pobliżu wpisz package_name.
Użyj tego samego package_name, którego użyto podczas konfigurowania projektu Unity.
Kliknij Konfiguruj.
Wybierz platformę społecznościową
Wtyczka Usług gier Google Play implementuje interfejs społecznościowy Unity, aby zapewnić zgodność z grami, które już korzystają z tego interfejsu podczas integracji z innymi platformami. Niektóre funkcje są jednak dostępne tylko w Grach Play i stanowią rozszerzenie standardowego interfejsu społecznościowego udostępnianego przez Unity.
Do standardowych wywołań interfejsu API można uzyskać dostęp za pomocą obiektu Social.Active, który jest odwołaniem do interfejsu ISocialPlatform. Do niestandardowych rozszerzeń usług gier Google Play można uzyskać dostęp, rzutując obiekt Social.Active na klasę PlayGamesPlatform, w której dostępne są dodatkowe metody.
Korzystanie z wtyczki bez zastępowania domyślnej platformy społecznościowej
Gdy wywołasz PlayGamesPlatform.Activate
, usługi gier Google Play staną się domyślną implementacją platformy społecznościowej, co oznacza, że statyczne wywołania metod w Social
i Social.Active
będą wykonywane przez wtyczkę usług gier Google Play. Tak działa większość gier korzystających z tej wtyczki.
Jeśli jednak z jakiegoś powodu chcesz zachować dostęp do domyślnej implementacji (np. aby używać jej do przesyłania osiągnięć i tablic wyników na inną platformę społecznościową), możesz użyć wtyczki Usług Google Play w Grach bez zastępowania domyślnej implementacji. Aby to zrobić:
- Nie dzwoń
PlayGamesPlatform.Activate
- Jeśli
Xyz
to nazwa metody, którą musisz wywołać w klasieSocial
, nie wywołujSocial.Xyz
. Zamiast tego zadzwoń pod numerPlayGamesPlatform.Instance.Xyz
- Nie używaj
Social.Active
podczas korzystania z Usług gier Play. Zamiast tego użyj interfejsuPlayGamesPlatform.Instance
.
Dzięki temu możesz przesyłać wyniki i osiągnięcia jednocześnie na 2 lub więcej platform społecznościowych:
// 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);
Weryfikowanie usługi logowania
Po otwarciu gry automatycznie podejmowana jest próba połączenia z usługami gier Play za pomocą usługi logowania. Jeśli połączenie się powiedzie, w grze pojawi się prośba o zalogowanie, a Ty będziesz mieć możliwość korzystania z wtyczki usług gier Google Play do silnika Unity.
Jeśli użytkownik nigdy nie korzystał na urządzeniu z usług gier Google Play, automatycznie wyświetli mu się ekran jednorazowej konfiguracji, na którym może utworzyć konto w Grach Play.
W metodzie Start
skryptu nasłuchuj wyniku automatycznej próby logowania, pobierz stan uwierzytelniania i wyłącz funkcje Usług gier Play, jeśli użytkownik nie jest zalogowany.
Jeśli wersja wtyczki Unity jest starsza niż v11
, nie możesz korzystać z funkcji logowania.
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).
}
}
Kod wyniku to wyliczenie, którego możesz użyć do określenia przyczyny niepowodzenia logowania.
Jeśli wolisz korzystać z platformy społecznościowej Unity, możesz użyć tego kodu:
using GooglePlayGames;
public void Start() {
PlayGamesPlatform.Activate();
Social.localUser.Authenticate(ProcessAuthentication);
}
Nie możesz wykonywać żadnych wywołań interfejsu API usług gier Google Play, dopóki nie uzyskasz prawidłowej wartości zwracanej z funkcji Authenticate
. Dlatego zalecamy, aby gry wyświetlały ekran gotowości, dopóki nie zostanie wywołane wywołanie zwrotne. Dzięki temu użytkownicy nie będą mogli rozpocząć gry, dopóki nie zostanie zakończona autoryzacja.
Używanie podpisywania aplikacji przez Google Play
Google zarządza kluczem podpisywania Twojej aplikacji i zabezpiecza go za pomocą podpisywania aplikacji przez Google Play. Podpisywanie aplikacji przez Google Play umożliwia podpisywanie zoptymalizowanych plików pakietów Android App Bundle na potrzeby dystrybucji. Usługa podpisywania aplikacji przez Google Play przechowuje Twój klucz podpisywania aplikacji w bezpiecznej infrastrukturze Google. Aby korzystać z podpisywania aplikacji przez Google Play, musisz najpierw utworzyć i pobrać plik AAB z Unity Hub. Następnie możesz przesłać plik AAB do Konsoli Play i utworzyć wersję testu wewnętrznego.
Tworzenie pliku AAB
Aby utworzyć plik AAB w Unity Hub:
- W Unity Hub kliknij File > Build settings (Plik > Ustawienia kompilacji).
Wybierz Build App Bundle ( Google Play ) (Utwórz pakiet aplikacji (Google Play)).
Więcej informacji znajdziesz w dokumentacji ustawień kompilacji na Androida.
Kliknij Build (Kompilacja).
Pobierz plik AAB z Unity Hub.
Tworzenie wersji do testów wewnętrznych
Aby utworzyć wewnętrzną wersję testową i dodać testerów w Konsoli Play, wykonaj te czynności:
- W Konsoli Google Play wybierz grę.
- Otwórz stronę Testowanie i wdrażanie (Testowanie> Test wewnętrzny).
- Kliknij Prześlij i wybierz plik AAB.
- W polu Szczegóły wersji wpisz nazwę.
- Kliknij Dalej i sprawdź szczegóły wydania.
- Kliknij Zapisz i opublikuj.
Na karcie Testerzy kliknij Utwórz listę e-mailową, aby dodać maksymalnie 100 testerów.
Więcej informacji znajdziesz w artykule Test wewnętrzny: zarządzanie maksymalnie 100 testerami.
W polu URL lub adres e-mail do przesyłania opinii wpisz URL lub adres e-mail, na który można przesyłać opinie.
Kliknij Zapisz.
Weryfikowanie danych logowania do podpisywania aplikacji
- W Konsoli Google Play wybierz grę.
- Otwórz stronę Testuj i publikuj (Konfiguracja> Podpisywanie aplikacji).
- Sprawdź dane logowania do podpisywania aplikacji.
Kompilowanie i uruchamianie projektu
W tym momencie możesz skompilować i uruchomić projekt gry. Gdy gra się uruchomi, zobaczysz automatyczną próbę zalogowania.
Potrzebujesz fizycznego urządzenia z Androidem z włączonym debugowaniem USB lub emulatora, na którym można uruchomić opracowany projekt.
Pobieranie kodów uwierzytelniania serwera
Aby uzyskać dostęp do interfejsów API Google na serwerze backendu w imieniu bieżącego gracza, musisz pobrać kod uwierzytelniania z aplikacji klienta i przekazać go do aplikacji serwera internetowego. Kod można następnie wymienić na token dostępu, aby wywoływać różne interfejsy API. Informacje o procesie znajdziesz w artykule Logowanie się za pomocą Google w internecie.
Aby uzyskać kod dostępu po stronie serwera:
- Dodaj identyfikator klienta internetowego do swojej gry w Konsoli Play.
- W Konsoli Google Play wybierz grę.
- Na stronie Konfiguracja (Zwiększaj liczbę użytkowników > Usługi gier Play > Konfiguracja i zarządzanie > Konfiguracja) kliknij Dodaj dane logowania.
- Na stronie Dodaj dane logowania kliknij Serwer gier.
- Wygeneruj identyfikator klienta OAuth 2.0.
- Zapisz wartość identyfikatora klienta. Tę wartość musisz podać później.
Dodaj identyfikator klienta internetowego do Unity Hub.
- W centrum Unity skonfiguruj Gry Google Play na Unity i zaloguj się.
- W centrum Unity kliknij Window > Google Play Games > Setup > Android Setup (Okno > Usługi gier Play > Konfiguracja > Konfiguracja Androida).
- Wpisz wartość identyfikatora klienta.
Pobierz kod autoryzacji serwera dla dodatkowych zakresów.
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... });
Konfigurowanie i dodawanie funkcji
Włącz funkcje usług gier Play.
Dodaj do gry funkcje przy użyciu interfejsów API usług gier Play:
Recall API for Unity (obsługiwany tylko w przypadku wtyczki Unity w wersji 11 lub nowszej)