Öğ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:
- Addressables for Android paketi
- Unity için PAD rehberi
- Unity için PAD API referans belgeleri
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
- 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.assetdeliveryOpenUPM
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.
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.appbundleUnity menü seçeneği Window > Package Manager'ı (Pencere > Paket Yöneticisi) belirleyerek paket yöneticisi menüsünü açın.
Yönetici kapsamı açılır menüsünü Kayıt Defterlerim'i seçecek şekilde ayarlayın.
Paket listesinden Unity için Google Play Integrity eklentisi paketini seçip Yükle'ye basın.
GitHub'dan içe aktarma
GitHub'dan en son
.unitypackagesürümünü indirin.Öğeler > Paketi içe aktar > Özel Paket Unity menü seçeneğini belirleyip tüm öğeleri içe aktararak
.unitypackagedosyasını içe aktarın.
Kullanıcı arayüzünü kullanarak AssetBundle'ları yapılandırma
Bir öğe paketindeki her AssetBundle'ı yapılandırın:
- Google > Android App Bundle > Asset Delivery Settings'i (Öğe Dağıtımı Ayarları) seçin.
- Doğrudan AssetBundle dosyalarını içeren klasörleri seçmek için Klasör Ekle'yi tıklayın.
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.
Uygulama paketini derlemek için Google > Build Android App Bundle'ı (Google > Android App Bundle Derle) seçin.
(İ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.