Importir aset, termasuk importir skrip yang Anda tulis, harus menghasilkan hasil yang konsisten (deterministik). Ini berarti mereka harus selalu menghasilkan output yang sama dari input dan set dependensi yang sama.
Untuk memverifikasi bahwa ini adalah kasus bagi importir Anda, Aset Database memiliki dua cara yang dapat Anda periksa konsistensi hasil impor aset saat ini dalam proyek Anda. Dua cara untuk memeriksa konsistensi adalah:
Reimport satu atau lebih aset di Editor
Gunakan argumen baris perintah -consistencyCheck untuk membuka Editor
Secara manual mengubah aset menyebabkan Unity untuk memeriksa apakah hasil impor baru cocok dengan hasil impor cache sebelumnya.
Untuk memulai reimport manual, klik kanan pada aset dan pilih Reimport dari menu konteks.
Unity kemudian memeriksa impor yang dihasilkan untuk konsistensi. Jika mendeteksi hasil yang tidak konsisten, Unity mencetak peringatan di Console windowJendela Unity Editor yang menunjukkan kesalahan, peringatan dan pesan lain yang dihasilkan oleh Unity, atau skrip Anda sendiri. More info
Lihat di Glossary dengan rincian tentang impor yang menyebabkan masalah, seperti:
Importer(<name of importer>) generated inconsistent result for asset(guid:<guid of the asset>) "<name of asset>"
Ketika Anda mengganti aset akar, Unity juga reimports dan melakukan pemeriksaan konsistensi pada aset anaknya.
Cara kedua untuk melakukan pemeriksaan konsistensi adalah membuka Unity dengan argumen baris perintah -consistencyCheck. Ini melakukan pemeriksaan konsistensi pada semua aset dan importir dalam proyek.
Command line argument | Description | Contoh |
---|---|---|
-consistencyCheck |
Memberitahu Editor untuk melakukan pemeriksaan konsistensi pada startup. Secara default melakukan cek “lokal” (lihat di bawah). | Login Sitemap |
-consistencyCheckSourceMode string |
Mengatur sumber untuk pemeriksaan konsistensi untuk memeriksa ketika membandingkan impor aset. Ada dua nilai yang mungkin: “local” atau “cacheserver”. “local” berarti bahwa ia memaksa reimport dari semua aset secara lokal dan memeriksa jika impor berbeda dari impor sebelumnya. “cacheserver” berarti bahwa itu meminta cacheserver untuk metadata untuk aset dan membandingkan jika hasilnya secara lokal cocok apa yang ada di server cache. Dalam kasus ini mengalihkan semua aset tidak terjadi. |
-consistencyCheckSourceMode local -konsistensiCheckSourceMode cacheserver |
Setiap inkonsistensi yang ditemukan selama startup masuk ke Konsol, serta file log Editor.
Pemeriksaan konsistensi hanya memeriksa impor aset yang dapat di cache. Jadi jika Anda menonaktifkan caching untuk ScriptedImporter Anda maka pemeriksaan konsistensi untuk impor juga akan dinonaktifkan. Lihat AssetImporters.ScriptedImporterAttribute untuk detail tentang cara menonaktifkan caching untuk importir skrip.
Untuk menggunakan sumber validasi cache serverAplikasi mandiri yang dapat Anda jalankan di komputer lokal Anda yang menyimpan data aset impor untuk mengurangi waktu yang dibutuhkan untuk mengimpor aset. More info
Lihat di Glossary, lihat dokumentasi Accelerator.
Ketika inkonsistensi impor terdeteksi, Anda dapat menemukan informasi lebih lanjut tentang masalah di log Editor. Ini termasuk:
aset mana yang menyebabkan pemeriksaan konsistensi gagal
The GUID of that asset
Memiliki konten untuk hasil impor aset
Bagaimana cara membandingkan revisi aset sebelumnya
Berikut adalah contoh log Editor yang menunjukkan inkonsistensi impor:
ConsistencyChecker - guid: a1945cd7aab67441ba89015f97494624, dependenciesHash.value: fb8cfb407bba82d4daded6031688ba9b, artifactid: 07078a054d3f597b4c2cc47e8e4c0bde, producedFiles[0].extension: , producedFiles[0].contentHash: 8490a5ed35a4361d679e6055a386969e
ConsistencyChecker - guid: a1945cd7aab67441ba89015f97494624, dependenciesHash.value: fb8cfb407bba82d4daded6031688ba9b, artifactid: 07078a054d3f597b4c2cc47e8e4c0bde, producedFiles[1].extension: .info, producedFiles[1].contentHash: 4bd9140e19d2e44782f1131172e514ba
ConsistencyChecker - guid: a1945cd7aab67441ba89015f97494624, dependenciesHash.value: fb8cfb407bba82d4daded6031688ba9b, artifactid: 646d6432767729ea7d288c636183de97, producedFiles[0].extension: , producedFiles[0].contentHash: 5ca760170f85012ce16aa8c22e8d9ea1
ConsistencyChecker - guid: a1945cd7aab67441ba89015f97494624, dependenciesHash.value: fb8cfb407bba82d4daded6031688ba9b, artifactid: 646d6432767729ea7d288c636183de97, producedFiles[1].extension: .info, producedFiles[1].contentHash: 4bd9140e19d2e44782f1131172e514ba
Importer(ScriptedImporter:Assembly-CSharp::RandomImporter) generated inconsistent result for asset(guid:a1945cd7aab67441ba89015f97494624) "Assets/first.rand"
Jika server cache tidak tersedia, checker konsisten mencetak peringatan di log Editor.
Jika server cache belum diatur untuk proyek, pesan berikut dicetak.
ConsistencyChecker - Cacheserver is not enabled
Jika Unity tidak dapat terhubung ke server cache, pesan ini dicetak.
ConsistencyChecker - Not connected to accelerator/cacheserver
Anda dapat menggunakan alat 'binary2text', terletak di folder Data / Alat di instalasi Editor Unity Anda, untuk memeriksa isi folder perpustakaan untuk melihat persis apa yang dihasilkan oleh importir.
Contoh:
./Data/Tools/binary2text ./myProject/Library/Artifacts/84/8490a5ed35a4361d679e6055a386969e output_file
Nilai hash adalah hash konten aset. Untuk menemukan inkonsistensi yang dilaporkan dan melihat konten apa yang dihasilkan selama pemeriksaan, lihat log Editor.