Execution Order of Event Functions
Dalam Unity scripting, ada sejumlah fungsi event yang dijalankan dalam urutan yang telah ditetapkan sebagai script mengeksekusi. Perintah eksekusi ini dijelaskan sebagai berikut:editor
Reset: Mereset dipanggil untuk menginisialisasi properti naskah itu ketika pertama kali melekat pada objek dan juga ketika Reset Perintah ini digunakan.
Pertama Adegan Beban
Fungsi-fungsi ini dipanggil saat adegan dimulai (sekali untuk setiap objek dalam adegan).
Awake: Fungsi ini selalu disebut sebelum fungsi Start dan juga setelah prefab sebuah contoh. (Jika GameObject tidak aktif selama start up Awake tidak disebut sampai dibuat aktif, atau fungsi dalam script yang melekat padanya disebut.)
OnEnable: (hanya dipanggil jika Objek aktif): Fungsi ini disebut hanya setelah objek diaktifkan. Hal ini terjadi ketika contoh MonoBehaviour dibuat, seperti ketika tingkat dimuat atau GameObject dengan komponen script dipakai.
Perhatikan bahwa untuk objek ditambahkan ke TKP, fungsi Awake dan OnEnable untuk semua skrip akan dipanggil sebelum mulai, Update, dll menyerukan salah satu dari mereka. Tentu, ini tidak dapat ditegakkan ketika suatu objek yang dipakai selama bermain game.
Sebelum update frame pertama
Mulai: Mulai disebut sebelum update frame pertama hanya jika contoh skrip diaktifkan.
Untuk obyek ditambahkan ke TKP, fungsi Start akan dipanggil pada semua skrip sebelum Update, dll menyerukan salah satu dari mereka. Tentu, ini tidak dapat ditegakkan ketika suatu objek yang dipakai selama bermain game.
Di antara frame
OnApplicationPause: Ini disebut pada akhir frame di mana jeda terdeteksi, efektif antara update bingkai normal. Satu frame tambahan akan dikeluarkan setelah OnApplicationPause dipanggil untuk memungkinkan permainan untuk menunjukkan grafik yang menunjukkan keadaan dijeda.
Perbarui Orde
Bila Anda melacak logika permainan dan interaksi, animasi, posisi kamera, dll, ada beberapa peristiwa yang berbeda yang dapat Anda gunakan. Pola umum adalah untuk melakukan sebagian tugas dalam fungsi Update, tetapi ada juga fungsi lain yang dapat Anda gunakan.
FixedUpdate: FixedUpdate sering disebut lebih sering daripada Update. Hal ini dapat disebut beberapa kali per frame, jika frame rate rendah dan tidak dapat disebut antara frame sama sekali jika frame rate yang tinggi. Semua perhitungan fisika dan update terjadi segera setelah FixedUpdate. Ketika menerapkan perhitungan gerakan di dalam FixedUpdate, Anda tidak perlu untuk melipatgandakan nilai Anda dengan Time.deltaTime. Hal ini karena FixedUpdate disebut pada timer yang dapat diandalkan, independen dari frame rate.
Update: Update dipanggil sekali per frame. Ini adalah fungsi pekerja keras utama untuk update bingkai.
LateUpdate: LateUpdate disebut sekali per frame, setelah Update telah selesai. Setiap perhitungan yang dilakukan di Update akan menyelesaikan ketika LateUpdate dimulai. Yang umum digunakan untuk LateUpdate akan mengikuti orang ketiga kamera. Jika Anda membuat gerakan karakter Anda dan putar dalam Update, Anda dapat melakukan semua gerakan kamera dan perhitungan rotasi di LateUpdate. Ini akan memastikan bahwa karakter telah bergerak sepenuhnya sebelum kamera trek posisinya.
Rendering
OnPreCull: Dipanggil sebelum kamera bahan-bahan rusak adegan. Pemusnahan menentukan objek yang terlihat kamera. OnPreCull disebut sebelum pemusnahan berlangsung.
OnBecameVisible / OnBecameInvisible: Dipanggil ketika suatu objek menjadi terlihat / terlihat kamera apapun.
OnWillRenderObject: Dipanggil sekali untuk setiap kamera jika objek terlihat.
OnPreRender: Dipanggil sebelum kamera mulai render adegan.
OnRenderObject: Dipanggil setelah semua adegan render biasa dilakukan. Anda dapat menggunakan kelas GL atau Graphics.DrawMeshNow menggambar geometri kustom pada saat ini.
OnPostRender: Dipanggil setelah kamera selesai render adegan.
OnRenderImage (Pro saja): Dipanggil setelah adegan render selesai untuk memungkinkan postprocessing gambar di layar.
OnGUI: Disebut beberapa kali per frame dalam menanggapi peristiwa GUI. Layout dan Repaint peristiwa diproses terlebih dahulu, diikuti dengan Layout dan acara keyboard / mouse untuk setiap acara masukan.
OnDrawGizmos Digunakan untuk menggambar Gizmos dalam tampilan adegan untuk tujuan visualisasi.
coroutines
Update coroutine biasa dijalankan setelah kembali fungsi Update. Sebuah coroutine adalah fungsi yang dapat menangguhkan pelaksanaannya (yield) sampai selesai YieldInstruction diberikan. Perbedaan penggunaan Coroutines:
menghasilkan coroutine akan berlanjut setelah semua fungsi pembaruan telah dipanggil pada frame berikutnya.
WaitForSeconds hasil Lanjutkan dengan waktu yang ditentukan, setelah semua fungsi pembaruan telah dipanggil untuk frame
hasil WaitForFixedUpdate Lanjutkan setelah semua FixedUpdate telah meminta semua skrip
menghasilkan WWW Lanjutkan setelah WWW Download telah selesai.
menghasilkan StartCoroutine Chains coroutine, dan akan menunggu coroutine MyFunc untuk menyelesaikan terlebih dahulu.
Ketika Objek akan Hancur
OnDestroy: Fungsi ini disebut setelah semua update frame untuk frame terakhir dari keberadaan objek (objek mungkin hancur dalam menanggapi Object.Destroy atau penutupan adegan).
ketika Berhenti
Fungsi-fungsi ini dipanggil pada semua benda yang aktif dalam adegan Anda,:
OnApplicationQuit: Fungsi ini meminta semua objek permainan sebelum aplikasi berhenti. Dalam editor itu disebut ketika pengguna berhenti playmode. Dalam pemain web itu disebut ketika tampilan web ditutup.
OnDisable: Fungsi ini dipanggil saat perilaku menjadi cacat atau tidak aktif.
Script Lifecycle Flowchart
Diagram berikut menyajikan pemesanan dan pengulangan fungsi event selama seumur hidup script.
Sumber : http://docs.unity3d.com/Manual/ExecutionOrder.html
0 komentar:
Posting Komentar