Il plug-in Google Play Instant per Unity configura il tuo progetto Unity per creare un app istantanea del tuo gioco. Questa guida descrive come installare e utilizzare questo plug-in.
Scaricare e importare il plug-in
Il plug-in fa parte dei plug-in di Google Play per Unity. Per importare Per eseguire il plug-in, procedi nel seguente modo:
- Scarica l'ultima release dai plug-in di Google Play per le release Unity.
- Importa il file
.unitypackage
selezionando l'opzione di menu IDE Unity Asset > Importa pacchetto > Pacchetto personalizzato e importare tutti gli elementi.
Funzionalità di Unity Editor
Importa il plug-in per aggiungere un Google > Sottomenu Play Instant in Unity. Questo offre le seguenti opzioni.
Impostazioni build
Apre una finestra che consente il passaggio tra Installata e Istantanea di sviluppo software. Il passaggio a Istantanea comporta le seguenti modifiche:
- Crea un simbolo di definizione dello script denominato
PLAY_INSTANT
che può essere utilizzato per scripting con#if PLAY_INSTANT
e#endif
. - Gestisce gli aggiornamenti al file AndroidManifest.xml per alcune modifiche richieste quali come android:targetSandboxVersion.
Impostazioni del player
La finestra di dialogo Impostazioni player, mostrata nella Figura 1, mostra suggerimenti utili ottimizzi il supporto di Google Play Instant, svilupparle in base a API grafiche e ridurre le dimensioni dell'APK.
Queste impostazioni del player sono suddivise in Obbligatorie e Consigliate impostazioni. Se un'impostazione ha un pulsante Aggiorna corrispondente, fai clic sull'impostazione per cambia l'impostazione sul valore preferito.
Per ridurre ulteriormente le dimensioni dell'APK, apri il gestore di pacchetti Unity e rimuovi eventuali pacchetti inutilizzati.
Deployment rapido
Il deployment rapido può ridurre le dimensioni di un'app istantanea basata su Unity pacchettizzando alcune in un tag AssetBundle. Quando si utilizza il deployment rapido, vengono pacchettizzati il motore di gioco Unity e una schermata di caricamento. in un APK di app istantanea e, dopo l'avvio, recupera il AssetBundle da un server.
Supporta i flussi di lavoro di installazione
L'obiettivo di molte app istantanee è offrire agli utenti la possibilità di provarla prima di installare la versione completa. Il plug-in Google Play Instant per Unity fornisce API per mostrare una finestra di dialogo di installazione del Play Store e per trasferire lo stato da istantanea all'app installata.
Mostra una richiesta di installazione
Un'app istantanea con un pulsante Installa può mostrare un'installazione del Play Store richiamando il codice seguente da un gestore dei clic sul pulsante Installa:
Google.Play.Instant.InstallLauncher.ShowInstallPrompt();
Il metodo ShowInstallPrompt()
ha un sovraccarico che consente uno o più di questi
le seguenti:
- Determinare se l'utente annulla la procedura di installazione. Esegui override
onActivityResult()
nell'attività principale dell'app istantanea e controlla seRESULT_CANCELED
sulrequestCode
specificato. - Trasmettere una stringa referrer di installazione tramite il parametro
referrer
. - Stato di superamento della sessione di gioco corrente tramite
PutPostInstallIntentStringExtra()
.
Ciò è dimostrato nell'esempio seguente:
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");
}
Se l'utente completa l'installazione dell'app, il Play Store riavvierà l'app.
utilizzando il postInstallIntent
fornito. L'app installata può recuperare un valore
impostato in postInstallIntent
utilizzando quanto segue:
var sessionInfo = InstallLauncher.GetPostInstallIntentStringExtra("sessionInfo");
Note:
- Gli extra inclusi in
postInstallIntent
potrebbero non raggiungere il dispositivo installato app se l'utente installa l'app, ma annulla l'avvio post-installazione. Il trasferimento di extra per intent è più adatto per mantenere lo stato della sessione attiva invece di conservare uno stato permanente. di quest'ultimo fai riferimento API Cookie. - Chiunque può creare un intent con campi aggiuntivi per avviare l'app installata Quindi, se il payload concede qualcosa di valore, progetta il payload in modo che può essere usato una sola volta, firmarlo in modo crittografico e verificare su un server.
Utilizzare l'API Cookie
L'API Cookie fornisce metodi per trasmettere un cookie (ad es. ID player o livello
dati di completamento) da un'app istantanea all'app installata corrispondente. Non mi piace
postInstallIntent
extra, lo stato dei cookie è disponibile anche se l'utente
non avvia immediatamente l'app installata. Ad esempio, un'app istantanea potrebbe
richiama il seguente codice da un gestore dei clic su un pulsante di installazione:
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);
}
Se l'utente completa l'installazione dell'app, l'app installata può recuperare il utilizzando il seguente codice:
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.
}