Wtyczka błyskawiczna Google Play do Unity konfiguruje projekt Unity tak, aby wersji aplikacji błyskawicznej. Z tego przewodnika dowiesz się, jak zainstalować i używać za pomocą tej wtyczki.
Pobieranie i importowanie wtyczki
Wtyczka jest częścią wtyczek Google Play dla Unity. Aby zaimportować wykonaj te czynności:
- Pobierz najnowszą wersję z wtyczek Google Play w wersjach Unity.
- Zaimportuj plik
.unitypackage
, wybierając opcję menu Unity IDE Zasoby > Importuj pakiet > Pakiet niestandardowy i zaimportuj wszystkie elementy.
Funkcje edytora Unity
Zaimportuj wtyczkę, aby dodać Google > Odtwarzaj aplikację błyskawiczną w podmenu Unity. Ten zawiera następujące opcje.
Ustawienia kompilacji
Otwiera okno, które umożliwia przełączanie się między trybem Zainstalowane a Błyskawiczne. oraz trybach programistycznych. Przełączenie na Wyszukiwanie dynamiczne spowoduje wprowadzenie tych zmian:
- Tworzy symbol definicji skryptów o nazwie
PLAY_INSTANT
, który można wykorzystać za pomocą skryptów#if PLAY_INSTANT
i#endif
. - Zarządza aktualizacjami pliku AndroidManifest.xml w przypadku określonych wymaganych zmian, takich jak jako android:targetSandboxVersion.
Ustawienia odtwarzacza
Okno Ustawienia odtwarzacza widoczne na rys. 1, zawiera sugestie pomocne optymalizować obsługę aplikacji błyskawicznych w Google Play, programować na podstawie interfejsów API związanych z grafiką i zmniejszyć rozmiar pliku APK.
![Konkretne sugestie obejmują tylko korzystanie z OpenGL ES 2.0 oraz
wyłączyć renderowanie wielowątkowe.](https://developer.android.com/static/topic/google-play-instant/images/unity-plugin-player-settings.png?authuser=9&hl=pl)
Te ustawienia odtwarzacza są podzielone na Wymagane i Zalecane. ustawieniach. Jeśli ustawienie ma odpowiedni przycisk Aktualizuj, kliknij go, aby zmienić ustawienie na preferowaną wartość.
Aby jeszcze bardziej zmniejszyć rozmiar pliku APK, otwórz menedżera pakietów Unity i usuń wszystkie nieużywanych pakietów.
Szybkie wdrażanie
Szybkie wdrażanie może zmniejszyć rozmiar aplikacji błyskawicznych opartych na Unity przez pakiet zasobów w AssetBundle, Jeśli używasz szybkiego wdrażania, silnik gry Unity i ekran wczytywania są w pakiecie do pakietu APK aplikacji błyskawicznej. Po uruchomieniu aplikacja pobiera AssetBundle z serwera.
Obsługa przepływów pracy instalacji
Celem wielu aplikacji błyskawicznych jest umożliwienie użytkownikom wypróbowania aplikacji . Wtyczka Aplikacja błyskawiczna w Google Play do Unity udostępnia interfejsy API do wyświetlania okna instalacji Sklepu Play oraz do przenoszenia stanu z do zainstalowanej aplikacji.
Pokaż prośbę o instalację
Aplikacja błyskawiczna z przyciskiem Zainstaluj może wyświetlać informację o instalacji ze Sklepu Play przez wywołanie tego elementu z modułu obsługi kliknięć przycisku instalacji:
Google.Play.Instant.InstallLauncher.ShowInstallPrompt();
W metodzie ShowInstallPrompt()
występuje przeciążenie, które pozwala na użycie jednej lub kilku
następujące:
- Określają, czy użytkownik anuluje instalację. Zastąp
onActivityResult()
w głównej aktywności w aplikacji błyskawicznej i sprawdź, czyRESULT_CANCELED
w określonymrequestCode
. - Przekazywanie ciągu znaków strony odsyłającej do instalacji za pomocą parametru
referrer
. - Zaliczone informacje o bieżącej sesji gry:
PutPostInstallIntentStringExtra()
Zostało to pokazane w tym przykładzie:
using Google.Play.Instant;
...
const int requestCode = 123;
var sessionInfo = /* Object serialized as a string representing player's current location, etc. */;
using (var activity = UnityPlayerHelper.GetCurrentActivity())
using (var postInstallIntent = InstallLauncher.CreatePostInstallIntent(activity))
{
InstallLauncher.PutPostInstallIntentStringExtra(postInstallIntent, "sessionInfo", sessionInfo);
InstallLauncher.ShowInstallPrompt(activity, requestCode, postInstallIntent, "test-referrer");
}
Jeśli użytkownik zainstaluje aplikację, Sklep Play uruchomi ją ponownie.
za pomocą podanego parametru postInstallIntent
. Zainstalowana aplikacja może pobrać wartość
ustaw w postInstallIntent
za pomocą tego:
var sessionInfo = InstallLauncher.GetPostInstallIntentStringExtra("sessionInfo");
Uwagi:
- Dodatki zawarte w pakiecie
postInstallIntent
mogą nie dotrzeć do zainstalowanych jeśli użytkownik zainstaluje aplikację, ale anuluje wprowadzenie po instalacji. Przekazywanie dodatkowych intencji lepiej sprawdza się w utrzymaniu aktywnego stanu sesji niż do utrzymywania stałego stanu, w tym drugim przypadku. API plików cookie. - Każdy może utworzyć intencję z dodatkowymi polami, aby uruchomić zainstalowane Jeśli więc ładunek przynosi jakąś wartość, zaprojektuj go w taki sposób, może zostać użyty tylko raz, podpisać go kryptograficznie i zweryfikować podpis na serwerze.
Używanie interfejsu Cookie API
Interfejs Cookie API udostępnia metody przekazywania plików cookie (np. identyfikator gracza lub poziom
z aplikacji błyskawicznej do jej zainstalowanej aplikacji. Nie podoba mi się
postInstallIntent
, stan pliku cookie jest dostępny nawet wtedy, gdy użytkownik
nie uruchamia od razu zainstalowanej aplikacji. Aplikacja błyskawiczna może na przykład
wywołanie następującego kodu z modułu obsługi kliknięć przycisku instalacji:
using Google.Play.Instant;
...
var playerInfo = /* Object serialized as a string representing game levels completed, etc. */;
var cookieBytes = System.Text.Encoding.UTF8.GetBytes(playerInfo);
try
{
var maxCookieSize = CookieApi.GetInstantAppCookieMaxSize();
if (cookieBytes.Length > maxCookieSize)
{
UnityEngine.Debug.LogErrorFormat("Cookie length {0} exceeds limit {1}.", cookieBytes.Length, maxCookieSize);
}
else if (CookieApi.SetInstantAppCookie(cookieBytes))
{
UnityEngine.Debug.Log("Successfully set cookie. Now display the app install dialog...");
InstallLauncher.ShowInstallPrompt();
}
else
{
UnityEngine.Debug.LogError("Failed to set cookie.");
}
}
catch (CookieApi.InstantAppCookieException ex)
{
UnityEngine.Debug.LogErrorFormat("Failed to set cookie: {0}", ex);
}
Jeśli użytkownik ukończy instalację aplikacji, zainstalowana aplikacja może pobrać , używając tego kodu:
var cookieBytes = CookieApi.GetInstantAppCookie();
var playerInfoString = System.Text.Encoding.UTF8.GetString(cookieBytes);
if (!string.IsNullOrEmpty(playerInfoString))
{
// Initialize game state based on the cookie, e.g. skip tutorial level completed in instant app.
}