Menggunakan AssetBundles Natively
Patching with AssetBundles

Kompresi asetBundle

Format kompresi asetBundle

Secara default, Unity membuat AssetBundles dengan LZMA compressionMetode menyimpan data yang mengurangi jumlah ruang penyimpanan yang dibutuhkan. Kompresi Tekstur, Kompresi Animasi, Kompresi Audio, Membangun Kompresi.
Lihat di Glossary
, dan cache mereka dengan kompresi LZ4. Bagian ini menjelaskan format kompresi.

Unity's AsetBundle membangun pipa menciptakan AssetBundles dengan kompresi LZMA. Format kompresi ini adalah aliran data yang mewakili seluruh AssetBundle, yang berarti bahwa jika Anda perlu membaca Aset dari arsip ini, Anda harus menekan seluruh aliran. Ini adalah format yang disukai untuk AssetBundles yang diunduh dari Jaringan Pengiriman Konten (CDN), karena ukuran file lebih kecil daripada kompresi LZ4.

Kompresi LZ4, di sisi lain, adalah algoritma kompresi berbasis chunk. Jika Unity perlu mengakses Aset dari arsip LZ4, hanya perlu menekan dan membaca chunks yang mengandung byte dari Aset yang diminta. Ini adalah metode kompresi yang digunakan Unity dalam cache AsetBundle. Gunakan nilai ketika membangun AssetBundles untuk memaksa kompresi LZ4 (HC).

Aset yang tidak terkompresi yang membangun Unity ketika Anda tidak memerlukan dekompresi, tetapi menempati lebih banyak ruang disk. Aset yang tidak terkompresi adalah 16-byte sejajar.

AssetBundle cache

Untuk mengoptimalkan pengambilan, menekan kembali, dan versi Aset LZMA menggunakan WWW atau (UWR), Unity mempertahankan dua cache:

  • The Memory Cache toko AssetBundles dalam format di RAM.

  • The Disk Cache toko dipetik AsetBundles pada media yang dapat ditulis dalam format kompresi yang dijelaskan nanti.

AsetBundles dimuat ke Cache Memori mengkonsumsi sejumlah besar memori. Kecuali Anda secara khusus ingin sering dan cepat mengakses isi dari AssetBundle, Cache Memori kemungkinan tidak layak biaya Memori. Sebaliknya, Anda harus menggunakan Cache Disk.

Jika Anda menyediakan parameter versi ke UWR API, Unity menyimpan data AssetBundle Anda di Disk Cache. Jika Anda tidak menyediakan parameter versi, Unity menggunakan Cache Memori. Parameter versi dapat berupa nomor versi atau hash. Jika diatur ke true, Unity menerapkan kompresi LZ4 ketika menulis AssetBundles untuk disk untuk semua download berikutnya. Tidak terkompresi data yang tidak terkompresi di cache. Jika salah, Unity tidak berlaku kompresi ketika menulis AssetBundles ke disk.

Dibutuhkan lebih lama untuk awalnya dimuat cache LZMA AssetBundles, karena Unity harus menekan arsip ke format tujuan. Beban yang sering menggunakan versi yang tersimpan.

atau selalu menggunakan Cache Memori untuk Aset LZMA, sehingga Anda harus menggunakan API UWR. Jika tidak mungkin untuk menggunakan UWR API, Anda dapat menggunakan untuk menulis ulang Aset LZMA pada disk.

Note: WebGLLogin API yang membuat grafis 2D dan 3D di browser web. Opsi build Unity WebGL memungkinkan Unity untuk mempublikasikan konten sebagai program JavaScript yang menggunakan teknologi HTML5 dan WebGL rendering API untuk menjalankan konten Unity di browser web. More info
Lihat di Glossary
tidak mendukung kompresi LZMA untuk AssetBundles. Gunakan kompresi LZ4 dengan AssetBundles pada platform WebGL. Untuk informasi lebih lanjut, lihat Membangun dan menjalankan proyek WebGL.

Uji internal menunjukkan bahwa setidaknya ada urutan perbedaan besar dalam penggunaan RAM antara menggunakan Cache Disk bukan Cache Memori. Anda harus menimbang trade-off antara dampak memori versus menambahkan persyaratan ruang disk dan waktu instansi Aset untuk aplikasi Anda.

Menggunakan AssetBundles Natively
Patching with AssetBundles