Pertimbangan kinerja WebGL
Cursor mengunci dan mode layar penuh di WebGL

Cara debug dan pemecahan masalah WebGL builds

Visual Studio tidak mendukung konten Unity 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
debugging. Untuk membantu Anda untuk mengetahui persis apa yang terjadi dengan konten Anda, berikut adalah beberapa tips tentang cara mendapatkan informasi dari membangun Anda.

Konsol JavaScript browser

Unity WebGL tidak memiliki akses ke sistem file Anda, sehingga tidak menulis file log seperti platform lain. Namun, itu menulis semua informasi penebangan (seperti Debug.Log, penebangan internal Console.WriteLine atau Unity) ke konsol JavaScript browser.

Untuk membuka konsol JavaScript:

  • Di Firefox, tekan Ctrl-Shift-K di Windows atau Command-Option-K di Mac.
  • Di Chrome, tekan Ctrl-Shift-J pada Windows atau Command-Option-J pada Mac.
  • Di Safari, pergi ke Preferensi > Lanjutan > Mengembangkan, dan tekan Command-Option-C.
  • Di Microsoft Edge atau Internet Explorer, tekan F12.

Membangun pembangunan

Untuk keperluan debugging, Anda mungkin ingin membuat pembangunan build di Unity (terbuka Membangun jendela Pengaturan dan klik kotak cemen). Membangun pembangunan memungkinkan Anda untuk menghubungkan nama fungsi Development BuildMembangun pengembangan termasuk simbol debug dan memungkinkan Profiler. More info
Lihat di Glossary
, dan Unity tidak profilerJendela yang membantu Anda untuk mengoptimalkan permainan Anda. Ini menunjukkan berapa banyak waktu yang dihabiskan di berbagai bidang permainan Anda. Sebagai contoh, dapat melaporkan persentase waktu yang dihabiskan rendering, aimating, atau dalam logika permainan Anda. More info
Lihat di Glossary
, sehingga kode JavaScript yang dipancarkan masih mengandung nama fungsi manusia-readable (meskipun minify). Peramban dapat menggunakan ini untuk menampilkan jejak stack ketika Anda berjalan ke kesalahan browser, ketika menggunakan C++-mangled. Tidak seperti jejak stack yang dikelola yang dapat terjadi ketika Anda memiliki dukungan pengecualian penuh (lihat di bawah), jejak stack ini memiliki nama yang mangled, dan tidak hanya berisi kode yang dikelola, tetapi juga kode UnityEngine internal.Debug.LogError, or when you throw an exception and exception support is disabled. Unlike the managed stack traces that can occur when you have full exception support (see below), these stack traces have mangled names, and contain not only managed code, but also the internal UnityEngine code.

Kecuali dukungan

WebGL memiliki tingkat dukungan pengecualian yang berbeda (lihat dokumentasi pada WebGL). Secara default, Unity WebGL hanya mendukung pengecualian dibuang secara eksplisit. Anda dapat mengaktifkan dukungan pengecualian Full, yang memancarkan pemeriksaan tambahan dalam kode IL2CPP-generasi, untuk menangkap akses ke referensi null dan elemen array out-of-bounds dalam kode yang dikelola. Pemeriksaan tambahan ini secara signifikan mempengaruhi kinerja dan meningkatkan ukuran kode dan waktu beban, sehingga Anda hanya harus menggunakannya untuk debugging.

Dukungan pengecualian FullDebug.Log juga memancarkan nama fungsi untuk menghasilkan jejak stack untuk kode dikelola Anda. Untuk alasan ini, tumpukan jejak muncul di konsol untuk menangguhkan pengecualian dan untuk pernyataan System.Environment.Stacktrace. Gunakan untuk mendapatkan string jejak stack.

Troubleshooting

Masalah: Membangun keluar dari memori

Ini adalah masalah umum, terutama pada browser 32-bit. Untuk informasi lebih lanjut tentang masalah memori WebGL dan cara memperbaikinya, lihat dokumentasi pada WebGL.

Masalah: File disimpan ke Aplikasi. Login Login Jalan tidak bertahan

Unity WebGL menyimpan semua file yang harus bertahan antara sesi (seperti PlayerPrefs atau file yang disimpan dalam persistentDataPath) ke browser IndexedDB. Ini adalah API asinkron, sehingga Anda tidak tahu ketika itu akan selesai.

Panggilan kode berikut untuk memastikan Unity flushes semua sistem file pending operasi menulis ke sistem file IndexedDB dari memori:

FS.syncfs(false, function (err) {
    console.log('Error: syncfs failed!');
 });

Pesan kesalahan: cek header yang tidak benar

Konsol browser log biasanya mencetak kesalahan ini sebagai akibat dari konfigurasi server yang salah. Untuk informasi lebih lanjut tentang cara menyebarkan build rilis, lihat dokumentasi pada Menyebarkan build terkompresi.

Pesan kesalahan: Menghapus format ini (1) tidak didukung pada platform ini

Konsol browser mencetak kesalahan ini ketika konten mencoba memuat AsetBundle terkompresi menggunakan LZMA, yang Unity WebGL tidak mendukung. Re-kompresi AssetBundle menggunakan LZ4 compressionMetode menyimpan data yang mengurangi jumlah ruang penyimpanan yang dibutuhkan. Kompresi Tekstur, Kompresi Animasi, Kompresi Audio, Membangun Kompresi.
Lihat di Glossary
untuk memecahkan masalah ini. Untuk informasi lebih lanjut tentang kompresi untuk WebGL, lihat dokumentasi pada, terutama bagian AssetBundles.


  • 2018–09–03 Login

  • MonoDevelop diganti dengan Visual Studio dari 2018.1

Pertimbangan kinerja WebGL
Cursor mengunci dan mode layar penuh di WebGL