W tym dokumencie znajdziesz instrukcje konfigurowania projektu Unity pod kątem korzystania z wtyczki Google Play Games do Unity. Dowiedz się, jak zainstalować wtyczkę i skonfigurować projekt Unity. Dokument zawiera też informacje o tym, jak zweryfikować usługę logowania.
Zanim zaczniesz
Zapoznaj się z wymaganiami dotyczącymi oprogramowania. Skonfiguruj Konsolę Play i zainstaluj Unity Hub.
Skonfiguruj Konsolę Play dla swojej gry.
Zainstaluj Unity Hub i skompiluj grę w Unity.
Instalacja wtyczki
Aby pobrać i zainstalować wtyczkę Google Play Games do Unity, wykonaj te czynności w Unity Hub:
Pobierz repozytorium GitHub.
W katalogu
current-build
odszukaj plikunitypackage
. Ten plik reprezentuje wtyczkę. Powinien on wyglądać mniej więcej tak:current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
Konfigurowanie projektu Unity
Aby skonfigurować projekt Unity w ustawieniach odtwarzacza:
Otwórz projekt gry.
W Unity Hub kliknij 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 powinien pojawić się nowy element menu. Jeśli nie ma żadnych zasobów, odśwież je, klikając Zasoby > Odśwież, a następnie spróbuj ponownie skonfigurować platformę kompilacji.
W Unity Hub kliknij Plik > Ustawienia kompilacji > Ustawienia odtwarzacza > Inne ustawienia.
W polu Docelowy poziom interfejsu API wybierz wersję.
W polu Backend skryptu wpisz
IL2CPP
.W polu Docelowe architektury wybierz wartość.
Zanotuj nazwę pakietu package_name.Możesz jej użyć później.
Tworzenie nowego magazynu kluczy
Aby zweryfikować swoje dane logowania, potrzebujesz klucza. Wykonaj te czynności:
- W Unity Hub kliknij Plik > Ustawienia kompilacji > Ustawienia odtwarzacza.
- W sekcji Ustawienia publikacji kliknij Menadżer magazynu kluczy.
- W oknie Menedżer magazynu kluczy kliknij Magazyn kluczy > Utwórz nowy > Wszędzie.
- Wybierz folder i podaj nazwę magazynu kluczy.
- W polu Hasło wpisz hasło i potwierdź.
- Kliknij Dodaj klucz.
Zanotuj nazwę folderu. Możesz użyć tej nazwy do utworzenia danych logowania w Google Cloud.
Kopiowanie zasobów Androida z Konsoli Play
Każde osiągnięcie, tabela wyników i wydarzenie, które utworzysz w Konsoli Play, zawiera zasób Androida, którego używasz podczas konfigurowania projektu Unity.
Aby pobrać 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 zasoby Androida (
AndroidManifest.xml
).
Dodawanie zasobów Androida do projektu Unity
Dodaj do projektu Unity te zasoby Androida:
W Unity Hub kliknij Okno > Gry Google Play > Konfiguracja > Konfiguracja Androida.
- W polu Katalog do zapisywania stałych wpisz nazwę folderu pliku stałych.
W polu Nazwa klasy stałych wpisz nazwę klasy C#, którą chcesz utworzyć, w tym przestrzeń nazw.
Jeśli na przykład klasa C# to
id.cs
i znajduje się w folderze Zasoby > mójprojekt > skrypty > id.cs. Nazwa klasy stałych może być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 powiązanej aplikacji internetowej.
Aby uzyskać identyfikator klienta gry z Google Cloud, przeczytaj artykuł Tworzenie identyfikatorów klientów.
Jest to konieczne tylko wtedy, gdy masz backend oparty na sieci do gry i potrzebujesz kodu autoryzacji serwera, aby wymienić go na token dostępu na serwerze backendu. Możesz też potrzebować tokenu identyfikacyjnego gracza, aby wykonywać inne wywołania interfejsu API poza grą.
Kliknij Konfiguruj. Skonfiguruje to grę za pomocą identyfikatora klienta i wygeneruje klasę C#, która zawiera stałe dla każdego z Twoich zasobów Androida.
W Unity Hub kliknij Okno > Gry Google Play > Konfiguracja > Konfiguracja połączeń z pobliskimi urządzeniami.
W polu Identyfikator usługi łączenia z usługą w pobliżu wpisz package_name.
Użyj tego samego package_name, którego używasz w konfiguracji 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ż go używają, podczas integracji z innymi platformami. Niektóre funkcje są jednak unikalne dla Gry Play i są oferowane jako rozszerzenia standardowego interfejsu społecznościowego udostępnianego przez Unity.
Standardowe wywołania interfejsu API są dostępne 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, przekazując obiekt Social.Active do klasy PlayGamesPlatform, w której dostępne są dodatkowe metody.
Używanie wtyczki bez zastępowania domyślnej platformy społecznościowej
Gdy wywołasz PlayGamesPlatform.Activate
, usługi gier Google Play stają się domyślną implementacją platformy społecznościowej, co oznacza, że wywołania statyczne metod w Social
i Social.Active
będą wykonywane przez wtyczkę usług gier Google Play. Większość gier korzystających z tego komponentu działa w taki sposób.
Jeśli jednak z jakiegoś powodu chcesz zachować dostęp do domyślnej implementacji (np. aby przesyłać osiągnięcia i tabele wyników na inną platformę społecznościową), możesz użyć wtyczki Usług Gier Play bez zastępowania domyślnej implementacji. Aby to zrobić:
- Nie dzwoń pod numer
PlayGamesPlatform.Activate
- Jeśli
Xyz
to nazwa metody, którą musisz wywołać w klasieSocial
, nie wywołuj metodySocial.Xyz
. Zamiast tego zadzwoń pod numerPlayGamesPlatform.Instance.Xyz
- Nie używaj
Social.Active
podczas interakcji z Usługami Gier Play. Zamiast tego używaj elementuPlayGamesPlatform.Instance
.
Dzięki temu możesz nawet 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
Gdy otworzysz grę, automatycznie nastąpi próba połączenia z Usługami Gier Play za pomocą usługi logowania. Jeśli połączenie się powiedzie, gra wyświetli prompt logowania i będzie gotowa do korzystania z wtyczki usług gier Google Play w Unity.
Jeśli użytkownik nigdy nie korzystał z Usług gier Google Play na swoim urządzeniu, automatycznie przejdzie przez ekran jednorazowej konfiguracji, aby utworzyć konto w Gierach Play.
W metodzie Start
skryptu sprawdzaj wynik automatycznej próby zalogowania się, pobieraj stan uwierzytelniania i wyłącz funkcje Usług Google 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 typ enumeracji, za pomocą którego można określić przyczynę 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 otrzymasz wartości zwracanej z poziomu Authenticate
. Dlatego zalecamy, aby gry wyświetlały ekran w trybie gotowości do momentu wywołania funkcji z powrotem, aby użytkownicy nie mogli zacząć grać, dopóki nie zakończy się uwierzytelnianie.
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 dystrybucyjnych Android App Bundle(AAB). 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ę testów wewnętrznych.
Tworzenie pliku AAB
Aby utworzyć plik AAB w Unity Hub, wykonaj te czynności:
- W Unity Hub kliknij Plik > Ustawienia kompilacji.
Wybierz Utwórz pakiet aplikacji ( Google Play).
Więcej informacji znajdziesz w dokumentacji ustawień kompilacji na Androida.
Kliknij Kompiluj.
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 publikowanie (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ć do 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 adres URL lub adres e-mail do przesyłania opinii.
Kliknij Zapisz.
Weryfikowanie danych logowania do podpisywania aplikacji
- W Konsoli Google Play wybierz grę.
- Otwórz stronę Testowanie i publikowanie (Konfiguracja > Podpisywanie aplikacji).
- Sprawdź swoje dane logowania do usługi 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 przez USB lub emulatora, na którym można uruchomić opracowany projekt.
Pobieranie kodów uwierzytelniania serwera
Aby uzyskać dostęp do interfejsów Google API na serwerze internetowym w imieniu bieżącego gracza, musisz uzyskać 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 tym procesie znajdziesz w artykule Logowanie się z Google w internecie.
Aby uzyskać kod dostępu po stronie serwera:
Skonfiguruj identyfikator klienta internetowego aplikacji internetowej powiązanej z Twoją grą w Konsoli Play.
Po uwierzytelnieniu gracza zadzwoń pod numer
PlayGamesPlatform.Instance.RequestServerSideAccess
, aby uzyskać kod dostępu po stronie serwera.Przekaż ten kod do aplikacji serwera.
PlayGamesPlatform.Instance.RequestServerSideAccess(
/* forceRefreshToken= */ false,
code -> {
// send code to server
});
Konfigurowanie i dodawanie funkcji
Włącz funkcje Usług gier Play.
Dodawaj funkcje do gry za pomocą interfejsów API usług gier Play:
Interfejs API do wycofywania reklam w Unity (obsługiwany tylko w przypadku wtyczki Unity w wersji 11 lub nowszej)