Secara default, 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 Reloading diaktifkan. Ini berarti bahwa ketika Anda memasukkan Play Mode, Unity menghancurkan semua Adegan yang ada GameObjectsObjek mendasar dalam adegan Unity, yang dapat mewakili karakter, props, pemandangan, kamera, waypoints, dan banyak lagi. Fungsi GameObject didefinisikan oleh Komponen yang melekat padanya. More info
Lihat di Glossary dan memuat ulang Adegan dari disk. Waktu itu diperlukan untuk Unity untuk melakukan ini meningkat dengan kompleksitas Adegan, yang berarti bahwa proyek Anda semakin kompleks, Anda harus menunggu lebih lama antara saat Anda menekan tombol Play dan saat Adegan dimuat penuh di Editor.
Ketika Anda menonaktifkan Adegan Reloading, proses membutuhkan waktu kurang. Hal ini memungkinkan Anda untuk lebih cepat bergetar pada pengembangan proyek Anda. Alih-alih reloading adegan dari disk, Unity hanya mengatur ulang konten yang dimodifikasi adegan. Ini menghindari dampak waktu dan kinerja pembongkaran dan reloading adegan. Unity masih memanggil fungsi awalisasi yang sama (seperti OnEnable
, OnDisable
dan OnDestroy
) seolah-olah itu baru dimuat.
Untuk menonaktifkan Adegan Reloading:
Untuk informasi lebih lanjut, lihat Cara mengkonfigurasi Mode Bermain
Ketika Anda menonaktifkan Adegan Reloading, waktu yang diperlukan untuk memulai aplikasi Anda di Editor tidak lagi perwakilan dari waktu startup dalam versi yang dibangun. Oleh karena itu, jika Anda ingin debug atau profil persis apa yang terjadi selama startup proyek Anda, Anda harus mengaktifkan Adegan Reloading ke lebih akurat mewakili waktu pemuatan dan proses yang terjadi dalam versi aplikasi Anda yang dibangun.
Mengaktifkan Adegan Reload harus memiliki efek samping minimal pada proyek Anda. Namun, karena Reloading Adegan terhubung erat ke Reload Domain, ada beberapa perbedaan penting:
Login Tujuan dan MonoBehaviour bidang yang tidak serialisasi ke dalam membangun ([NonSerialized]
, swasta, atau internal) menjaga nilai-nilai mereka. Ini karena Unity tidak menciptakan kembali benda yang ada dan tidak memanggil konstruktor. Selain itu, Unity mengubah bidang pribadi dan internal array/List ke objek array/List kosong selama Reload Domain dan tetap non-null untuk runtime (non-Editor) 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.
Script yang menggunakan skrip ExecuteInEditMode
, atau ExecuteAlways
tidak menerima panggilan OnDestroy
atau Awake
. Unity tidak memanggil Awake, dan hanya panggilan OnEnable ketika EditorApplication.isPlaying
sudah benar pada perubahan Mode Play dengan metode Awake/OnEnable yang memeriksa properti EditorApplication.isPlaying
. Bidang nonserialized untuk runtime (non-Editor) skrip tidak boleh menjadi masalah karena ini tidak aktif dalam Edit Mode, namun skrip ditandai dengan ExecuteInEditMode
atau ExecuteAlways
dapat mengubah diri atau menyentuh bidang skrip runtime lainnya. Untuk bekerja di sekitar ini, menginisialisasi bidang yang terpengaruh di callback OnEnable sendiri.