Öğe yayınını entegre etme (Unity)

Öğe dağıtımını entegre ederken Unity oyunları, Addressables veya AssetBundles'ı kullanarak öğe paketlerine erişebilir. Addressables, Unity 2019.4 veya sonraki sürümlerle geliştirilen oyunlar için daha yeni ve önerilen öğe dağıtım çözümüdür. AssetBundles ise Unity 2017.4 ve 2018.4'te öğe paketleri için destek sağlar.

Unity Addressables

Unity 2019.4 veya sonraki sürümlerle geliştirilen oyunlar, Android'de öğe dağıtımı için Addressables'ı kullanmalıdır. Unity, Addressables kullanarak Android öğe paketlerini yönetmek için Play Asset Delivery (PAD) API'si sunar. Adreslenebilir öğeleri kullanma hakkında bilgi için aşağıdakilere bakın:

AssetBundle dosyalarını kullanma

Unity 2017.4 ve 2018.4 ile geliştirilen oyunlar, Android'de öğe dağıtımı için AssetBundle dosyalarını kullanabilir. Unity AssetBundle dosyaları, uygulama çalışırken Unity motoru tarafından yüklenebilen serileştirilmiş öğeler içerir. Bu dosyalar platforma özeldir (ör. Android için oluşturulmuştur) ve öğe paketleriyle birlikte kullanılabilir. En yaygın olarak, bir AssetBundle dosyası, AssetBundle ile aynı adı kullanan tek bir öğe paketinde paketlenir. Öğe paketi oluştururken daha fazla esneklik istiyorsanız öğe paketini API'yi kullanarak yapılandırın.

Çalışma zamanında, bir öğe paketinde paketlenmiş AssetBundle'ı almak için Unity için Play Asset Delivery sınıfını kullanın.

Ön koşullar

  1. Geliştirme ortamınızı ayarlayın:

OpenUPM-CLI

OpenUPM CLI yüklüyse OpenUPM kayıt defterini aşağıdaki komutla yükleyebilirsiniz:

openupm add com.google.play.assetdelivery

OpenUPM

  1. Edit > Project Settings > Package Manager (Düzenle > Proje Ayarları > Paket Yöneticisi) Unity menü seçeneğini belirleyerek paket yöneticisi ayarlarını açın.

  2. OpenUPM'yi Package Manager penceresine kapsamlı kayıt defteri olarak ekleyin:

    Name: package.openupm.com
    URL: https://package.openupm.com
    Scopes: com.google.external-dependency-manager
      com.google.play.common
      com.google.play.core
      com.google.play.assetdelivery
      com.google.android.appbundle
    
  3. Unity menü seçeneği Window > Package Manager'ı (Pencere > Paket Yöneticisi) belirleyerek paket yöneticisi menüsünü açın.

  4. Yönetici kapsamı açılır menüsünü Kayıt Defterlerim'i seçecek şekilde ayarlayın.

  5. Paket listesinden Unity için Google Play Integrity eklentisi paketini seçip Yükle'ye basın.

GitHub'dan içe aktarma

  1. GitHub'dan en son .unitypackage sürümünü indirin.

  2. Öğeler > Paketi içe aktar > Özel Paket Unity menü seçeneğini belirleyip tüm öğeleri içe aktararak .unitypackage dosyasını içe aktarın.

  1. Unity'de AssetBundle oluşturma.

Kullanıcı arayüzünü kullanarak AssetBundle'ları yapılandırma

  1. Bir öğe paketindeki her AssetBundle'ı yapılandırın:

    1. Google > Android App Bundle > Asset Delivery Settings'i (Öğe Dağıtımı Ayarları) seçin.
    2. Doğrudan AssetBundle dosyalarını içeren klasörleri seçmek için Klasör Ekle'yi tıklayın.

    Unity'de Öğe Yayınlama Ayarları Klasör Ekle düğmesi

  2. Her paket için Yayınlama Modu'nu Yükleme Zamanı, Hızlı Takip veya İsteğe Bağlı olarak değiştirin. Hataları veya bağımlılıkları çözüp pencereyi kapatın.

    Unity'de paket başına Asset Delivery yayınlama modu seçici

  3. Uygulama paketini derlemek için Google > Build Android App Bundle'ı (Google > Android App Bundle Derle) seçin.

  4. (İsteğe bağlı) Uygulama paketinizi farklı doku sıkıştırma biçimlerini destekleyecek şekilde yapılandırın.

API'yi kullanarak öğe paketlerini yapılandırma

Öğe yayınlamayı, otomatik derleme sisteminin bir parçası olarak çalıştırılabilen düzenleyici komut dosyaları aracılığıyla yapılandırabilirsiniz.

Android App Bundle derlemesine hangi öğelerin dahil edileceğini ve öğelerin yayınlama modunu tanımlamak için AssetPackConfig sınıfını kullanın. Bu öğe paketlerinin AssetBundle içermesi gerekmez.

public void ConfigureAssetPacks {
   // Creates an AssetPackConfig with a single asset pack, named
   // examplePackName, containing all the files in path/to/exampleFolder.
   var assetPackConfig = new AssetPackConfig();
   assetPackConfig.AddAssetsFolder("examplePackName",
                                   "path/to/exampleFolder",
                                   AssetPackDeliveryMode.OnDemand);

   // Configures the build system to use the newly created assetPackConfig when
   // calling Google > Build and Run or Google > Build Android App Bundle.
   AssetPackConfigSerializer.SaveConfig(assetPackConfig);

   // Alternatively, use BundleTool.BuildBundle to build an App Bundle from script.
   BuildBundle(new buildPlayerOptions(), assetPackConfig);
}

BuildPlayerOptions ve AssetPackConfig verildiğinde öğe paketleri içeren bir Android App Bundle oluşturmak için Bundletool sınıfındaki statik BuildBundle yöntemini de kullanabilirsiniz.

Rehberli eğitim için Unity oyunlarında Play Asset Delivery'yi kullanma Codelab'ine bakın.

Play Asset Delivery Unity API ile entegrasyon

Play Asset Delivery Unity API, öğe paketlerini isteme, indirmeleri yönetme ve öğelere erişme işlevlerini sağlar. Öncelikle projenize Unity eklentisini eklediğinizden emin olun.

API'de kullandığınız işlevler, öğe paketlerini nasıl oluşturduğunuza bağlıdır.

Eklenti kullanıcı arayüzünü kullanarak öğe paketleri oluşturduysanız Eklenti tarafından yapılandırılmış öğe paketleri'ni seçin.

API'yi (veya eklenti kullanıcı arayüzünü) kullanarak öğe paketleri oluşturduysanız API ile yapılandırılmış öğe paketleri'ni seçin.

Sonraki adımlar

Öğe dağıtımını yerel olarak ve Google Play'den test edin.