Das Google Play Instant-Plug-in für Unity konfiguriert Ihr Unity-Projekt zum Erstellen eines Instant-App-Version deines Spiels. In diesem Handbuch wird die Installation und Verwendung dieses Plug-ins.
Plug-in herunterladen und importieren
Das Plug-in ist Teil der Google Play-Plug-ins für Unity. So importieren Sie das Plug-in verwenden, gehen Sie folgendermaßen vor:
- Laden Sie den neuesten Release über Google Play-Plug-ins für Unity-Releases herunter.
- Importieren Sie die Datei
.unitypackage
über die Menüoption der Unity-IDE Assets > Paket importieren > Benutzerdefiniertes Paket und das Importieren aller Elemente.
Funktionen des Unity Editor
Importieren Sie das Plug-in, um ein Google > Play Instant auf der Unity-Plattform. Dieses enthält die folgenden Optionen.
Build-Einstellungen
Öffnet ein Fenster, in dem zwischen Installiert und Instant gewechselt werden kann Entwicklungsmodi. Beim Wechsel zu Instant werden die folgenden Änderungen vorgenommen:
- Erstellt ein Scripting-Definitionssymbol namens
PLAY_INSTANT
, das für folgende Aufgaben verwendet werden kann: Scripting mit#if PLAY_INSTANT
und#endif
. - Verwaltet Updates der AndroidManifest.xml für bestimmte erforderliche Änderungen wie als android:targetSandboxVersion
Player-Einstellungen
Im Dialogfeld Player Settings (Player-Einstellungen) (siehe Abbildung 1) werden Vorschläge zur Unterstützung angezeigt. optimieren Sie die Unterstützung für Google Play Instant, entwickeln Sie für Grafik-APIs und verringere die Größe deines APK.
<ph type="x-smartling-placeholder">![Zu den Vorschlägen gehört, nur OpenGL ES 2.0 zu verwenden und
Deaktivieren des Multithread-Renderings.](https://developer.android.com/static/topic/google-play-instant/images/unity-plugin-player-settings.png?authuser=9&hl=de)
Die Player-Einstellungen sind in Erforderlich und Empfohlen unterteilt. Einstellungen. Wenn es für eine Einstellung eine entsprechende Schaltfläche Aktualisieren gibt, klicken Sie darauf, die Einstellung auf den bevorzugten Wert.
Wenn du die APK-Größe weiter verringern möchtest, öffne den Unity-Paket-Manager und entferne alle nicht verwendeten Paketen.
Schnellbereitstellung
Quick Deploy kann die Größe einer Unity-basierten Instant-App reduzieren, indem Assets in einer Asset-Bundle erstellt wurde. Bei Verwendung von Quick Deploy werden die Unity-Spiel-Engine und ein Ladebildschirm gepackt in ein Instant-App-APK umgewandelt und nach dem Start die AssetBundle von einem Server.
Installations-Workflows unterstützen
Das Ziel vieler Instant-Apps ist es, Nutzenden die Möglichkeit zu geben, die App auszuprobieren. bevor Sie die Vollversion installieren. Das Google Play Instant-Plug-in für Unity bietet APIs zum Anzeigen eines Play Store-Installationsdialogs und zum Übertragen des Status von sofort zur installierten App.
Installationsaufforderung anzeigen
In einer Instant-App mit der Schaltfläche Installieren kann die Installation einer Play Store-App angezeigt werden. indem Sie Folgendes über den Klick-Handler der Installationsschaltfläche aufrufen:
Google.Play.Instant.InstallLauncher.ShowInstallPrompt();
Die Methode ShowInstallPrompt()
hat eine Überlastung, die eine oder mehrere
Folgendes:
- Feststellen, ob der Nutzer den Installationsvorgang abgebrochen hat. Überschreiben
onActivityResult()
in der Hauptaktivität der Instant App und suche nachRESULT_CANCELED
für die angegebenerequestCode
. - Übergabe eines Installationsverweisstrings über den Parameter
referrer
- Status der aktuellen Spielsitzung wird übergeben über
PutPostInstallIntentStringExtra()
Diese werden im folgenden Beispiel veranschaulicht:
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");
}
Nachdem der Nutzer die App installiert hat, wird sie im Play Store neu gestartet.
mithilfe der angegebenen postInstallIntent
. Die installierte App kann einen Wert abrufen
in postInstallIntent
mit folgendem Code festgelegt:
var sessionInfo = InstallLauncher.GetPostInstallIntentStringExtra("sessionInfo");
Hinweise:
- Die in der
postInstallIntent
enthaltenen Extras erreichen die installierten Geräte möglicherweise nicht wenn der Nutzer die App installiert, aber den Start nach der Installation abbricht. Die Übergabe von Intent-Extras eignet sich besser, um den aktiven Sitzungsstatus beizubehalten. als bei der Beibehaltung des persistenten Zustands. für Letztere sich auf das Cookie API - Jeder kann einen Intent mit zusätzlichen Feldern zum Starten der installierten Version erstellen. Wenn die Nutzlast einen Wert von Wert gewährt, konzipieren Sie die Nutzlast so, kann nur einmal verwendet werden, kryptografisch signieren und die auf einem Server.
Cookie API verwenden
Die Cookie API bietet Methoden zum Übergeben eines Cookies (z. B. Player-ID oder Level).
Abschlussdaten) von einer Instant-App in die entsprechende installierte App übertragen. „Mag ich“-Bewertung entfernen
postInstallIntent
enthält, ist der Cookiestatus auch dann verfügbar, wenn der Nutzer
startet die installierte App nicht sofort. Eine Instant-App könnte beispielsweise
Rufen Sie den folgenden Code aus einem Klick-Handler für die Installationsschaltfläche auf:
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);
}
Nachdem der Nutzer die App installiert hat, kann die installierte App den Cookie-Daten mit dem folgenden Code:
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.
}