Aset Persiapan untuk AsetBundles
Ketergantungan AsetBundle

Aset Bangunan

Dalam dokumentasi pada AssetBundle Workflow, kami memiliki sampel kode yang melewati tiga argumen ke fungsi BuildPipeline.BuildAssetBundles. Mari menyelam sedikit lebih dalam apa yang sebenarnya kita katakan.

Assets/AssetBundles: Ini adalah direktori bahwa AssetBundles akan output. Anda dapat mengubah ini ke direktori output yang Anda inginkan, hanya memastikan bahwa folder sebenarnya ada sebelum Anda mencoba build.

BuildAssetBundleOptions

Ada beberapa BuildAssetBundleOptions yang berbeda yang dapat Anda tentukan bahwa memiliki berbagai efek. Lihat Referensi API Scripting pada BuildAssetBundleOptions untuk tabel semua pilihan.

Meskipun Anda bebas untuk menggabungkan BuildAssetBundleOptions sesuai kebutuhan perubahan dan timbul, ada tiga BuildAssetBundleOptions spesifik yang berurusan dengan AssetBundle CompressionMetode menyimpan data yang mengurangi jumlah ruang penyimpanan yang dibutuhkan. Kompresi Tekstur, Kompresi Animasi, Kompresi Audio, Membangun Kompresi.
Lihat di Glossary
:

  • BuildAssetBundleOptions.None: Opsi bundel ini menggunakan kompresi Format LZMA, yang merupakan aliran LZMA terkompresi tunggal dari file data serial. Kompresi LZMA mengharuskan seluruh bundel terdekompresi sebelum digunakan. Hasil ini dalam ukuran file yang paling kecil tetapi waktu beban yang sedikit lebih lama karena dekompresi. Perlu dicatat bahwa ketika menggunakan BuildAssetBundleOptions ini, untuk menggunakan aset dari bundel seluruh bundel harus terkompresi awalnya. Login Setelah bundel telah terdepresi, itu akan direkompresi pada disk menggunakan kompresi LZ4 yang tidak memerlukan seluruh bundel terdekompresi sebelum menggunakan aset dari bundel. Ini paling baik digunakan ketika bundel mengandung aset seperti menggunakan satu aset dari bundel akan berarti semua aset akan dimuat. Kemasan semua aset untuk karakter atau adegan adalah beberapa contoh bundel yang mungkin menggunakan ini.
    Menggunakan kompresi LZMA hanya disarankan untuk unduhan awal dari AsetBundle dari host off-site karena ukuran file yang lebih kecil. Bundel aset terkompresi LZMA dimuat melalui
    secara otomatis direkompresi ke kompresi LZ4 dan cache pada sistem file lokal. Jika Anda mengunduh dan menyimpan bundel melalui cara lain, Anda dapat menekannya dengan API WordPress.org.AssetBundle.RecompressAssetBundleAsync API.

  • BuildAssetBundleOptions.UncompressedAssetBundle: Opsi bundel ini membangun bundel dengan cara seperti itu data benar-benar tidak terkompresi. Bagian bawah untuk tidak terkompresi adalah ukuran unduhan file yang lebih besar. Namun, waktu beban setelah diunduh akan jauh lebih cepat. Aset yang tidak terkompresi adalah 16-byte sejajar.

  • BuildAssetBundleOptions.ChunkBasedCompression: Opsi bundel ini menggunakan metode kompresi yang dikenal sebagai LZ4, yang menghasilkan ukuran file terkompresi lebih besar daripada LZMA tetapi tidak memerlukan seluruh bundel terdekompresi, tidak seperti LZMA, sebelum dapat digunakan. LZ4 menggunakan algoritma berbasis chunk yang memungkinkan AssetBundle dimuat dalam potongan atau “chunks.” Dekompresi satu chunk memungkinkan aset yang terkandung digunakan bahkan jika potongan lain dari AssetBundle tidak terurai.

Menggunakan ChunkBasedCompression memiliki waktu pemuatan yang sebanding dengan bundel yang tidak terkompresi dengan manfaat tambahan dari ukuran yang berkurang pada disk.

BuildTarget

BuildTarget.Standalone: Di sini kita memberitahukan membangun pipa yang platform target kita akan menggunakan AssetBundles ini untuk. Anda dapat menemukan daftar target membangun eksplisit yang tersedia di Referensi API Scripting untuk BuildTarget. Namun, jika Anda agak tidak mengeras di target build Anda, jangan ragu untuk mengambil keuntungan dari EditorUserBuildSettings.activeBuildTarget yang akan secara otomatis menemukan platform Anda saat ini setup untuk membangun dan membangun Aset Anda berdasarkan target tersebut.

Setelah Anda mengatur skrip build Anda dengan benar, akhirnya waktu untuk membangun bundel Anda. Jika Anda mengikuti contoh skrip di atas, klik AssetsSetiap media atau data yang dapat digunakan dalam permainan atau proyek Anda. Aset mungkin berasal dari file yang dibuat di luar Unity, seperti model 3D, file audio atau gambar. Anda juga dapat membuat beberapa jenis aset di Unity, seperti Pengontrol Animator, Audio Mixer atau Tekstur Render. More info
Lihat di Glossary
> Build AssetBundles untuk memulai proses.

Sekarang Anda telah berhasil membangun Anda Meme it AsetBundles, Anda dapat melihat bahwa direktori AssetBundles Anda memiliki lebih banyak file daripada yang mungkin Anda harapkan. 2 * (n+1) lebih banyak file, tepatnya. Mari kita ambil menit dan pergi persis apa hasil BuildPipeline.BuildAssetBundles.

Sitemap AsetBundle Anda ditentukan dalam editor, Anda akan melihat file dengan nama Aset Anda dan nama Aset Anda + ".manifest".

Akan ada bundel tambahan dan manifestasi yang tidak berbagi nama dengan Aset yang Anda buat. Ini, bukan, dinamakan setelah direktori yang terletak di (di mana AssetBundles dibangun untuk). Ini adalah Bundel Manifest. Kami akan membahas lebih banyak tentang hal ini dan bagaimana menggunakannya di masa depan.

File AsetBundle

Ini adalah file yang tidak memiliki ekstensi .manifest dan apa yang akan Anda bongkar saat berjalan untuk memuat Aset Anda.

File AssetBundle adalah arsip yang berisi beberapa file secara internal. Struktur arsip ini dapat berubah sedikit tergantung pada jika itu adalah Aset atau Aset SceneAdegan berisi lingkungan dan menu permainan Anda. Pikirkan setiap file Adegan unik sebagai tingkat yang unik. Di setiap Adegan, Anda menempatkan lingkungan, hambatan, dan dekorasi, pada dasarnya merancang dan membangun permainan Anda dalam potongan-potongan. More info
Lihat di Glossary
. Ini adalah struktur Aset normal:

Adegan AssetBundle berbeda dengan Aset normal, di dalamnya dioptimalkan untuk aliran pemuatan Adegan dan kontennya.

Manifest File

Untuk setiap bundel yang dihasilkan, termasuk tambahan Manifest Bundle, file manifest yang terkait dihasilkan. File manifest dapat dibuka dengan editor teks dan berisi informasi seperti data cek redundansi siklik (CRC) dan data ketergantungan untuk bundel. Untuk Aset normalBundles file manifest mereka akan terlihat seperti ini:

ManifestFileVersion: 0
CRC: 2422268106
Hashes:
  AssetFileHash:
    serializedVersion: 2
    Hash: 8b6db55a2344f068cf8a9be0a662ba15
  TypeTreeHash:
    serializedVersion: 2
    Hash: 37ad974993dbaa77485dd2a0c38f347a
HashAppended: 0
ClassTypes:
- Class: 91
  Script: {instanceID: 0}
Assets:
  Asset_0: Assets/Mecanim/StateMachine.controller
Dependencies: {}

Yang menunjukkan aset, ketergantungan, dan informasi lainnya.

Manifest Bundel yang dihasilkan akan memiliki manifestasi, tetapi akan terlihat lebih seperti ini:

ManifestFileVersion: 0
AssetBundleManifest:
  AssetBundleInfos:
    Info_0:
      Name: scene1assetbundle
      Dependencies: {}

Ini akan menunjukkan bagaimana AssetBundles berhubungan dan apa ketergantungan mereka. Untuk saat ini, cukup pahami bahwa bundel ini mengandung objek AssetBundleManifest yang akan sangat berguna untuk mencari tahu bahwa ketergantungan bundel untuk memuat pada runtime. Untuk mempelajari lebih lanjut tentang cara menggunakan bundel ini dan objek manifest, lihat dokumentasi pada Menggunakan AssetBundles Natively.

Aset Persiapan untuk AsetBundles
Ketergantungan AsetBundle