Google Play Instant mit Unity verwenden

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:

  1. Laden Sie den neuesten Release über Google Play-Plug-ins für Unity-Releases herunter.
  2. 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">
</ph> Zu den Vorschlägen gehört, nur OpenGL ES 2.0 zu verwenden und
  Deaktivieren des Multithread-Renderings.
Abbildung 1: Das Dialogfeld Player Settings (Player-Einstellungen)

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 nach RESULT_CANCELED für die angegebene requestCode.
  • Ü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.

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.
}