UI(User Interface) Memungkinkan pengguna untuk berinteraksi dengan aplikasi Anda. Unity saat ini mendukung tiga sistem UI. More info
Lihat di Glossary Toolkit event systemCara mengirim peristiwa ke objek dalam aplikasi berdasarkan input, apakah keyboard, mouse, sentuh, atau input kustom. Sistem Acara terdiri dari beberapa komponen yang bekerja sama untuk mengirim acara. More info
Lihat di Glossary mendengarkan acara, datang dari sistem operasi atau 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, dan mengirimkan acara ini ke elemen visual menggunakan EventDispatcher. Pengirim acara menentukan strategi pengiriman yang tepat untuk setiap acara yang dikirim. Setelah ditentukan, pengiriman mengeksekusi strategi.
Elemen visual menerapkan perilaku default untuk beberapa peristiwa. Ini dapat melibatkan penciptaan dan pelaksanaan acara tambahan. Sebagai contoh, MouseMoveEvent
bisa menghasilkan MouseEnterEvent
tambahan dan MouseLeaveEvent
. Peristiwa ini memasuki antrian dan proses setelah acara saat ini. Sebagai contoh, proses selesai MouseMoveEvent
sebelum peristiwa MouseEnterEvent
dan MouseLeaveEvent
.
Setiap jenis acara memiliki perilaku pengiriman sendiri. Perilaku dari setiap jenis acara memecah ke tiga tahap:
Untuk daftar perilaku pengiriman untuk setiap jenis acara, lihat Halaman referensi acara.
Setelah pengiriman acara memilih target acara, itu menghitung jalur perbanyakan acara. Jalur perambatan adalah daftar elemen visual yang dipesan yang menerima acara. Jalur perambatan terjadi dalam urutan berikut:
Sebagian besar jenis acara dikirim ke semua elemen di sepanjang jalur perambatan. Beberapa jenis acara melewatkan fase gelembung-up, dan beberapa jenis acara dikirim ke target acara hanya.
Jika Anda menyembunyikan atau menonaktifkan elemen, itu tidak akan menerima acara. Acara masih menyebar ke nenek moyang dan keturunan elemen tersembunyi atau dinonaktifkan.
Sebagai perjalanan acara di sepanjang jalur perambatan, pembaruan Event.currentTarget
ke elemen penanganan acara. Dalam fungsi callback acara, ada dua properti yang mencatat perilaku pengiriman:
Event.currentTarget
adalah elemen visual di mana callback terdaftar.Event.target
adalah elemen di mana acara terjadi, misalnya elemen langsung di bawah mouse.Target acara tergantung pada jenis acara. Untuk acara mouse, targetnya paling umum elemen yang dapat dipilih paling top, langsung di bawah mouse. Untuk acara keyboard, target adalah elemen yang memiliki fokus.
Acara UI Toolkit memiliki properti target
, yang berisi referensi ke elemen di mana acara terjadi. Untuk sebagian besar peristiwa yang berasal dari sistem operasi, proses pengiriman menemukan target acara secara otomatis.
Elemen target disimpan dalam EventBase.target
dan tidak berubah selama proses pengiriman. Properti Event.currentTarget
memperbarui elemen visual saat ini menangani acara.
Sebagian besar peristiwa mouse menggunakan mode pengambilan untuk menentukan target mereka. Kelas VisualElement
memiliki properti pickingMode
yang mendukung nilai-nilai berikut:
PickingMode.Position
(default): melakukan pengambilan berdasarkan posisi persegi panjang.PickingMode.Ignore
: mencegah penjemputan akibat peristiwa mouse.Anda dapat menimpa metode VisualElement.ContainsPoint()
untuk melakukan logika intersection kustom.
Setelah MouseDownEvent
, beberapa elemen harus menangkap posisi pointer untuk memastikan itu menerima semua peristiwa mouse berikutnya, bahkan ketika kursor tidak lagi menggigit elemen. Misalnya, ketika Anda mengklik tombol, slider, atau bilah gulir.
Untuk menangkap mouse, panggilan element.CaptureMouse()
atau MouseCaptureController.CaptureMouse()
.
Untuk melepaskan mouse, panggilan MouseCaptureController.ReleaseMouse()
. Jika elemen lain sudah menangkap mouse ketika Anda memanggil CaptureMouse()
, elemen menerima MouseCaptureOutEvent
dan kehilangan tangkapan.
Hanya satu elemen dalam aplikasi dapat memiliki capture setiap saat. Sementara elemen memiliki tangkapan, itu target semua peristiwa mouse berikutnya kecuali peristiwa roda mouse. Ini hanya berlaku untuk acara mouse yang belum memiliki target set dan bergantung pada proses pengiriman untuk menentukan target.
Untuk informasi lebih lanjut, lihat Kalender.
Setiap panel UI Toolkit memiliki cincin fokus yang menentukan urutan elemen fokus. Secara default, pencarian pertama (DFS) pada pohon elemen visual menentukan urutan fokus elemen. Misalnya, urutan fokus untuk pohon yang digambarkan di bawah ini akan F, B, A, D, C, E, G, I, H.
Beberapa peristiwa menggunakan urutan fokus untuk menentukan elemen mana yang memegang fokus. Misalnya, target untuk acara keyboard adalah elemen dalam fokus.
Gunakan properti focusable
untuk mengontrol apakah elemen visual terfokus. Secara default, VisualElements
tidak dapat difokuskan, tetapi beberapa subklas, seperti TextField
, mungkin dapat difokuskan secara default.
Gunakan properti tabIndex
untuk mengontrol pesanan fokus sebagai berikut (tabIndex
nilai default 0):
tabIndex
negatif, Anda tidak dapat menggunakan tab pada elemen.tabIndex
adalah nol, elemen menjaga urutan tab default, sebagaimana ditentukan oleh algoritma cincin fokus.tabIndex
positif, elemen ditempatkan di depan elemen lain yang memiliki nol tabIndex
(tabIndex = 0
) atau nilai tabIndex
lebih kecil dari sendiri.