WordPress.org
Aset teks

Konsistensi Importir

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

Pemeriksaan konsistensi reimport manual

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.

Pemeriksaan konsistensi baris perintah

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.

Editor log

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

Debugging

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.

WordPress.org
Aset teks