Apa yang Unity skips ketika Reload Domain dan Adegan Reload dinonaktifkan
Dari perspektif tingkat tinggi, masukkan Play Mode terdiri dari tahap utama berikut:
Backup current Scenes. Ini hanya terjadi ketika 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 telah dimodifikasi. Memungkinkan Unity untuk mengalihkan Adegan ketika Play Mode diakhiri ke keadaan mereka berada sebelum Play Mode dimulai.
Domain Reload. Mengatur ulang state scripting, dengan memuat ulang domain scripting.
Scene Reload. Mengatur ulang keadaan Adegan, dengan memuat ulang Adegan.
Update Scene. Ini terjadi dua kali; sekali tanpa rendering, dan sekali dengan rendering.
Tugas gabungan dari Domain Reload dan Scene Reload mengatur ulang domain scripting dan mensimulasikan perilaku startup dari aplikasi Anda karena akan berjalan di pemain. Satuan melewatkan langkah-langkah ini ketika Anda menonaktifkannya di 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 Anda.
Diagram di bawah ini memberikan informasi rinci tentang peristiwa yang tepat yang Unity skips ketika Reload Domain dan Reload Adegan dinonaktifkan. Biru menunjukkan peristiwa Unity skips ketika Reload Domain dinonaktifkan, dan hijau menunjukkan peristiwa Unity skips ketika Adegan Reload dinonaktifkan.
Apa Unity melakukan ketika Adegan Reloading dan Domain Reloading keduanya diaktifkan
Dengan Adegan Reloading dan Domain Reloading diaktifkan, ini adalah daftar lengkap dari semua proses dan peristiwa yang dilakukan Unity ketika memasuki Mode Bermain:
Acara beforeAssemblyReload dibesarkan.
Domain C# dihentikan: a. OnDisable() disebut untuk semua ScriptableObjects dan MonoBehaviours. b. Unity menunggu semua operasi async selesai.
Keadaan semua MonoBehaviours dan ScriptableObjects serialized. a. OnBeforeSerialize() disebut. b. Semua nilai lapangan publik dan swasta serialisasi, kecuali yang ditandai dengan [NonSerialized].
Bungkus terkelola terputus dari benda Unity asli.
The Unity Child Domain is reloaded: a. Mono domain unload: i. Acara AppDomain.DomainUnload dibesarkan. ii. Domain Anak Unity hancur 1. GC dan finalizer disebut. Login 2. Thread diakhiri. Login 3. Semua info JIT dihapus. b. Domain Anak Unity baru dibuat. 3. All JIT info is deleted. b. The new Unity Child Domain is created.
Rakitan dimuat: a. Rakitan sistem dimuat. b. Rakitan bersatu dimuat. c. Rakitan pengguna dimuat.
Kerangka sinkronisasi diinisialisasi.
Negara scripting dipulihkan. . Bagian skrip dari semua objek Unity diciptakan kembali. i. Konstruktor disebut, dan statis ditugaskan nilai default mereka. b. Keadaan semua objek Unity adalah deserialized: i. The serialized menyatakan semua objek Unity dipulihkan. Login 1. Acara dibesarkan. OnAfterDeserialize ii. disebut. OnValidate() iii. Untuk menggunakan atribut 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:[ExecuteInEditMode] 1. disebut. Login 2. OnEnable() disebut. Login 3. disebut.OnDisable() is called. 3. OnDestroy() is called.