Acara Drag dikirim selama operasi di mana elemen visual memiliki perilaku drag dan drop. Ini adalah acara Editor-only.
Untuk menerapkan fungsionalitas drag and drop, pastikan bahwa elemen visual mendaftarkan callback untuk acara tertentu.
Elemen visual yang mendukung operasi drag terpisah menjadi dua jenis:
Anda dapat memilih elemen visual yang seret, tarik ke elemen visual yang dapat dijatuhkan, dan melepaskan elemen untuk menjatuhkannya.
Kelas dasar untuk semua peristiwa drag dan drop adalah DragAndDropEventBase.
Event | Description | Trickles down | Bubbles up | Cancellable |
---|---|---|---|---|
Login Sitemap | Sent ketika proses drag dan drop berakhir. | ✔ | ✔ | |
Login Sitemap | Sent ketika elemen seret bergerak di atas target drop. | ✔ | ✔ | ✔ |
Login Sitemap | Sent ketika elemen seret turun ke target. | ✔ | ✔ | ✔ |
Login Sitemap | Sent ketika elemen seret memasuki VisualElement baru. |
✔ | ||
DragLeaveEvent | Sent ketika elemen seret keluar target drop saat ini. | ✔ |
Untuk membuat elemen visual seret, Anda perlu mendaftarkan callback pada tiga jenis acara berikut:
Gunakan langkah-langkah berikut untuk operasi drag:
DragAndDrop
.DragAndDrop.StartDrag()
.DragPerformEvent
atau DragExitedEvent
.DragExitedEvent
dikirim ketika pengguna menyeret objek seret di atas elemen visual dan melepaskan pointer mouse. Ketika elemen visual area drop menerima DragExitedEvent
, perlu menghapus semua umpan balik dari operasi drag.
DragUpdatedEvent
dikirim ketika pointer bergerak ke elemen visual sebagai pengguna memindahkan objek yang seret.
Ketika elemen visual daerah drop menerima DragUpdatedEvent
, perlu untuk memperbarui umpan balik drop. Misalnya, Anda dapat memindahkan "ghost" objek yang seret sehingga tetap berada di bawah pointer mouse.
Elemen visual area drop juga harus memeriksa sifat DragAndDrop
dan mengatur DragAndDrop.visualMode
untuk menunjukkan efek operasi drop. Misalnya, operasi drop dapat membuat objek baru, memindahkan objek yang ada, atau menolak operasi drop.
DragPerformEvent
dikirim ketika pengguna menyeret objek yang seret dan melepaskan pointer mouse atas elemen visual. Ini hanya terjadi jika elemen visual menetapkan DragAndDrop.visualMode
untuk sesuatu selain DragAndDropVisualMode.None
atau DragAndDropVisualMode.Rejected
untuk menunjukkan bahwa itu dapat menerima benda-benda yang seret.
Ketika elemen visual daerah drop menerima DragPerformEvent
, perlu bertindak pada objek seret yang disimpan dalam DragAndDrop.objectReferences
, DragAndDrop.paths
atau DragAndDrop.GetGenericData()
.
Misalnya, mungkin menambahkan elemen visual baru di lokasi di mana pengguna menjatuhkan objek.
DragEnterEvent
dikirim ketika pointer memasuki elemen visual selama operasi drag.
Ketika elemen visual daerah drop menerima DragEnterEvent
, perlu memberikan umpan balik yang memungkinkan pengguna tahu bahwa itu, atau salah satu anak-anaknya, adalah target untuk operasi drop potensial. Misalnya, Anda dapat menambahkan kelas USS ke elemen target dan menampilkan "ghost" objek seret di bawah pointer mouse.
DragLeaveEvent
dikirim ketika pointer keluar elemen visual sebagai pengguna memindahkan objek yang seret.
Ketika elemen visual daerah drop menerima DragLeaveEvent
, perlu berhenti memberikan umpan balik. Misalnya, Anda dapat menghapus kelas AS yang Anda tambahkan ketika elemen target menerima DragEnterEvent
, dan tidak lagi menampilkan "ghost" dari objek seret.