Mengurangi waktu beban dengan AssetBundles
WebGL template

Ukuran distribusi dan pengupasan kode

Ketika penerbitan untuk 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
, penting untuk menjaga ukuran build Anda rendah sehingga pengguna mendapatkan waktu download yang wajar sebelum konten dimulai. Untuk tips generik untuk mengurangi ukuran aset, lihat dokumentasi pada Mengurangi ukuran file build.

Petunjuk dan tips spesifik untuk WebGL

  • Tentukan format Crunch compressionMetode menyimpan data yang mengurangi jumlah ruang penyimpanan yang dibutuhkan. Kompresi Tekstur, Kompresi Animasi, Kompresi Audio, Membangun Kompresi.
    Lihat di Glossary
    untuk semua tekstur terkompresi Anda di Tekstur Importer.

  • Jangan menggunakan development buildsMembangun pengembangan termasuk simbol debug dan memungkinkan Profiler. More info
    Lihat di Glossary
    ; mereka tidak dikompresi atau minified, dan memiliki ukuran file yang jauh lebih besar.

  • Di jendela pengaturan Player, (klik Edit > Project SettingsPengumpulan yang luas dari pengaturan yang memungkinkan Anda untuk mengkonfigurasi bagaimana Fisika, Audio, Jaringan, Grafik, Input dan banyak bidang lain dari jangkauan proyek Anda. More info
    Lihat di Glossary
    > WebGL) memperluas Publishing Settings, dan set Enable Exceptions ke None jika Anda tidak memerlukan pengecualian dalam build Anda.

  • Diaktifkan Strip Engine Code pada pengaturan Player > panel Other Settings, untuk memastikan build yang efisien.

  • Ketika menggunakan pihak ketiga berhasil dll, menyadari bahwa itu mungkin datang dengan ketergantungan yang meningkatkan ukuran kode yang dihasilkan.

Jika Anda membuat rilis build, Unity mengompres file output build sesuai dengan panel Compression Format yang dipilih dalam panel Publishing Settings dari pengaturan WebGL Player.

Untuk informasi lebih lanjut tentang cara menerbitkan build terkompresi, lihat Menyebarkan build terkompresi.

Kode pengupasan

Unity menghapus semua kode yang tidak digunakan dari build Anda secara default. Anda dapat mengubah ini melalui pengaturan Player (menu: Edit > Project Settings, kemudian pilih kategori Player): Pilih panel Other Settings untuk mengakses opsi Strip Engine Code. Lebih baik membangun dengan pengupasan diaktifkan.

Dengan pengupasan kode, Unity memindai proyek Anda untuk setiap kelas yang telah ditentukan oleh UnityObject yang digunakan (baik dengan direferensikan dalam kode skrip Anda, atau dalam data serialisasi di Adegan Anda). Itu kemudian menghapus dari membangun setiap sistem Unity yang tidak memiliki kelas mereka yang digunakan. Ini membuat build Anda memiliki lebih sedikit kode, menghasilkan unduhan yang lebih kecil dan lebih sedikit kode untuk parse (sehingga kode berjalan lebih cepat dan menggunakan memori lebih sedikit).

Masalah dengan pengupasan kode

Pengupasan kode mungkin menyebabkan masalah dengan proyek Anda jika kode strip yang benar-benar diperlukan. Ini dapat menjadi kasus ketika Anda memuat AssetBundles pada waktu yang berisi kelas yang tidak termasuk dalam build utama, dan karena itu telah dilucuti dari proyek. Pesan kesalahan muncul di konsol JavaScript browser Anda ketika ini terjadi (mungkin diikuti oleh lebih banyak kesalahan). Contoh:

Could not produce class with ID XXX

Untuk memecahkan kesalahan ini, cari ID (seperti XXX dalam contoh di atas) pada ID Kelas Login untuk melihat kelas mana mencoba untuk membuat instance. Dalam kasus seperti itu, Anda dapat memaksa Unity untuk menyertakan kode untuk kelas itu dalam membangun, baik dengan menambahkan referensi ke kelas itu ke scriptsSepotong kode yang memungkinkan Anda untuk membuat Komponen Anda sendiri, memicu peristiwa permainan, memodifikasi sifat komponen dari waktu ke waktu dan menanggapi input pengguna dengan cara apa pun yang Anda sukai. More info
Lihat di Glossary
Anda atau ke ScenesAdegan 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
Anda, atau dengan menambahkan file link.xml ke proyek Anda.

Di bawah ini adalah contoh yang memastikan bahwa kelas ColliderBentuk tak terlihat yang digunakan untuk menangani tabrakan fisik untuk objek. Seorang sari tidak perlu menjadi bentuk yang sama dengan jala objek - perkiraan kasar sering lebih efisien dan tidak dapat dibedakan dalam gameplay. More info
Lihat di Glossary
(dan oleh karena itu modul Fisika) dipertahankan dalam proyek. Tambahkan kode XML ini ke file yang disebut link.xml, dan masukkan file ke folder Assets Anda.

<linker>
    <assembly fullname="UnityEngine">
        <type fullname="UnityEngine.Collider" preserve="all"/>
    </assembly>
</linker>

Jika Anda mencurigai bahwa pengupasan menyebabkan masalah dengan membangun Anda, Anda juga dapat mencoba menonaktifkan opsi Strip Engine Code selama pengujian.

Unity tidak memberikan cara yang mudah untuk melihat modul dan kelas mana yang disertakan dalam membangun, yang memungkinkan Anda untuk mengoptimalkan proyek Anda ke strip dengan baik. Namun, untuk mendapatkan gambaran dari kelas dan modul yang disertakan, Anda dapat melihat file yang dihasilkan Temp/StagingArea/Data/il2cppOutput/UnityClassRegistration.cpp setelah membuat build.

Perhatikan bahwa opsi Strip Engine Code hanya mempengaruhi kode mesin Unity. IL2CPPBack-end scripting bersatu yang dapat Anda gunakan sebagai alternatif untuk Mono ketika proyek bangunan untuk beberapa platform. More info
Lihat di Glossary
selalu strip kode byte dari Anda berhasil dll dan skrip. Hal ini dapat menyebabkan masalah ketika Anda perlu merujuk jenis yang dikelola secara dinamis melalui refleksi daripada melalui referensi statis dalam kode Anda. Jika Anda perlu mengakses jenis melalui refleksi, Anda juga perlu mengatur file link.xml untuk melestarikan jenis tersebut. Lihat halaman dokumentasi pada Login Membangun optimasi ukuran untuk informasi lebih lanjut tentang file link.xml.

Pindahkan file output build

Untuk mengubah lokasi folder Build Anda, memodifikasi variabel buildUrl dalam file WebGL Template.html.

Untuk mengubah lokasi file di dalam folder Build, mengubah URL mereka (yaitu, dataUrl, wasmCodeUrl, dan wasmMemoryUrl) dalam parameter ke variabel konfigurasi dalam file index.html.wasmFrameworkUrl) in the parameters to the config variable in the index.html file.

Anda dapat menentukan URL di server eksternal untuk ini jika Anda ingin menghosting file Anda di jaringan distribusi konten (CDN), tetapi Anda perlu memastikan bahwa server hosting telah mengaktifkan Berbagi Sumber Daya Asal Lintas (CORS) untuk ini bekerja. Lihat halaman manual pada WebGL jaringan untuk informasi lebih lanjut tentang CORS.

Build di Incremental

Kode C++ yang dihasilkan untuk proyek Anda oleh IL2CPP disusun secara bertahap; yaitu, hanya dihasilkan kode C++ yang telah berubah sejak bangunan terakhir disusun lagi. Kode sumber yang tidak berubah menggunakan file objek yang sama yang dihasilkan untuk build sebelumnya. File objek yang digunakan untuk membangun C ++ yang masuk dalam direktori Library/il2cpp_cache dalam proyek Unity Anda.

Untuk melakukan pembersihan, mulai dari-scratch membangun kode C++ yang dihasilkan yang tidak menggunakan compiling incremental, menghapus direktori Library/il2cpp_cache di proyek Unity Anda. Perhatikan bahwa jika versi Editor Unity berbeda dari yang digunakan untuk membangun WebGL sebelumnya, Unity melakukan pembersihan, dari-scratch membangun secara otomatis.


  • Penuh Tanpa Stacktrace ditambahkan dalam Unity 2017.3
Mengurangi waktu beban dengan AssetBundles
WebGL template