Unity ile Google Play Instant'ı kullanma

Unity için Google Play Instant eklentisi, Unity projenizi Oyununuzun hazır uygulama sürümü. Bu kılavuzda, Google Etiket Yöneticisi'nin bu eklentiden yararlanabilirsiniz.

Eklentiyi indirme ve içe aktarma

Eklenti, Unity'ye yönelik Google Play Eklentileri'nin bir parçasıdır. İçe aktarmak için aşağıdaki adımları uygulayın:

  1. Unity sürümleri için Google Play Eklentileri'nden son sürümü indirin.
  2. Unity IDE menü seçeneğini belirleyerek .unitypackage dosyasını içe aktarın Öğeler > Paketi içe aktar > Özel Paket'e dokunup tüm öğeleri içe aktararak.

Unity Editor özellikleri

Google > Unity'de Anında alt menüsünü oynatın. Bu alt menüde aşağıdaki seçenekler sunulur.

Derleme Ayarları

Yüklü ve Anında arasında geçişe olanak tanıyan bir pencere açar kullanmanızı öneririz. Anında moduna geçildiğinde aşağıdaki değişiklikler gerçekleşir:

  • Şunlar için kullanılabilecek PLAY_INSTANT adında bir Komut Dosyası Tanımlama Simgesi oluşturur #if PLAY_INSTANT ve #endif ile komut dosyası oluşturma.
  • Örneğin, bazı gerekli değişiklikler için AndroidManifest.xml güncellemelerini yönetir. olması android:targetSandboxVersion seçeneğini belirtin.

Oynatıcı Ayarları

Şekil 1'de gösterilen Oynatıcı Ayarları iletişim kutusu, yardımcı olacak önerileri görüntüler Google Play Instant için desteği optimize etme, daha uyumlu ve APK'nızın boyutunu küçültün.

Özel öneriler, yalnızca OpenGL ES 2.0'ın kullanılmasını ve
  Çok İş Parçalı Oluşturma devre dışı bırakılır.
Şekil 1. Oynatıcı Ayarları iletişim kutusu

Bu Oynatıcı Ayarları, Zorunlu ve Önerilen olarak ikiye ayrılır. Ayarlar'da devre dışı bırakabilirsiniz. Bir ayara karşılık gelen bir Güncelle düğmesi varsa bu düğmeyi tıklayarak ayarı tercih edilen değere getirin.

APK boyutunu daha da küçültmek için Unity Paket Yöneticisi'ni açın ve mevcut tüm APK paket ekleyebilirsiniz.

Hızlı Dağıtım

Quick Deploy, bazı uygulamaları paket haline getirerek Unity tabanlı hazır uygulamaların boyutunu küçültebilir. bir AssetBundle. Hızlı Dağıtım kullanılırken Unity oyun motoru ve bir yükleme ekranı paketlenmiştir hazır uygulama APK'sına çalışır ve hazır uygulama başladıktan sonra AssetBundle öğesi.

Kurulum iş akışlarını destekleme

Birçok hazır uygulamanın amacı, kullanıcılara uygulamayı deneme şansı vermektir . Unity için Google Play Instant eklentisi, API'ler sunar. Play Store yükleme iletişim kutusu görüntülemek ve hazır sürümden yüklü uygulamaya.

Yükleme istemi göster

Yükle düğmesi olan bir hazır uygulama, Play Store'dan yükleme işlemini gösterebilir yükleme düğmesi tıklama işleyicisinden aşağıdaki komutu çağırarak iletişim kutusunu açın:

Google.Play.Instant.InstallLauncher.ShowInstallPrompt();

ShowInstallPrompt() yöntemi, aşağıdakilerin bir veya daha fazlasına izin veren bir aşırı yüklenmeye sahip şu:

  • Kullanıcının yükleme işlemini iptal edip etmediğini belirleme. Geçersiz kıl Hazır uygulamanın ana etkinliğinde onActivityResult() vardır ve Belirtilen requestCode üzerinde RESULT_CANCELED.
  • referrer parametresi aracılığıyla bir yükleme yönlendiren dizesi iletilir.
  • Mevcut oyun oturumuyla ilgili geçme durumu PutPostInstallIntentStringExtra()

Bunlar aşağıdaki örnekte gösterilmektedir:

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");
}

Kullanıcı uygulama yüklemesini tamamlarsa Play Store uygulamayı yeniden başlatır (postInstallIntent kullanılarak). Yüklü uygulama bir değer alabilir postInstallIntent içinde şu ayarlar kullanılarak ayarlanır:

var sessionInfo = InstallLauncher.GetPostInstallIntentStringExtra("sessionInfo");

Notes:

  • postInstallIntent içindeki ekstralar, yüklü cihaza ulaşmayabilir Kullanıcı uygulamayı yükler ancak yükleme sonrası başlatma işlemini iptal ederse. Aktarma amacı ekstraları, etkin oturum durumunu korumak için daha uygundur sürdürmek için gerekenden çok daha fazladır. RACI matrisine Çerez API'sı.
  • Herkes, yüklü uygulamayı başlatmak için ek alanlarla bir intent oluşturabilir Bu nedenle yük değer bir şey sağlıyorsa yükü bu yükü Yalnızca bir kez kullanılabilir, şifreyle imzalayın ve imzalanmasıdır.

Cookie API, çerez iletmek için yöntemler (ör.oynatıcı kimliği veya seviye) sunar. tamamlama verileri) gönderebilir. Beğenmeyi kaldır postInstallIntent ekstraları varsa çerez durumu, kullanıcı yüklü uygulamayı hemen başlatmaz. Örneğin, bir hazır uygulama yükleme düğmesi tıklama işleyicisinden aşağıdaki kodu çağırın:

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);
}

Kullanıcı uygulama yüklemesini tamamlarsa yüklü uygulama çerez verilerini kullanabilirsiniz:

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