Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

События перетаскивания отправляются во время операций, когда визуальные элементы имеют поведение перетаскивания. Это мероприятие предназначено только для редактора.

Чтобы реализовать функцию перетаскивания, убедитесь, что визуальные элементы регистрируют обратные вызовы для определенных событий.

Визуальные элементы, поддерживающие операции перетаскивания, делятся на два типа:

  • Перетаскиваемые визуальные элементы
  • Выпадающие визуальные элементы

Можно выбрать перетаскиваемый визуальный элемент, перетащить его на перетаскиваемый визуальный элемент и отпустить элемент, чтобы отбросить его.

Базовым классом для всех событий перетаскивания является DragAndDropEventBase.

Событие Описание Стекает вниз Пузыри вверх Отменяемый
DragExitedEvent Отправляется, когда заканчивается процесс перетаскивания.
DragUpdatedEvent Отправляется, когда перетаскиваемый элемент перемещается над целью перетаскивания.
DragPerformEvent Отправляется, когда перетаскиваемый элемент падает на цель.
DragEnterEvent Отправляется, когда перетаскиваемый элемент входит в новый VisualElement.
DragLeaveEvent Отправляется, когда перетаскиваемый элемент покидает текущую цель перетаскивания.

Визуальные элементы можно перетаскивать

Чтобы сделать визуальный элемент перетаскиваемым, необходимо зарегистрировать обратные вызовы для следующих трех типов событий:

Выполните следующие шаги для операции перетаскивания:

  1. Установите для него состояние "перетаскивание".
  2. Добавьте соответствующие данные в DragAndDrop.
  3. Вызов DragAndDrop.StartDrag().
  4. Предоставьте визуальную подсказку к операции перетаскивания. Визуальный элемент области перетаскивания должен удалять эту обратную связь при получении DragPerformEvent или DragExitedEvent.

Список событий

DragExitedEvent

Событие DragExitedEvent отправляется, когда пользователь перетаскивает любой перетаскиваемый объект на визуальный элемент и отпускает указатель мыши. Когда визуальный элемент области перетаскивания получает DragExitedEvent, он должен удалить все отклики от операций перетаскивания.

Событие перетаскивания

Событие DragUpdatedEvent отправляется, когда указатель перемещается по визуальному элементу при перемещении пользователя. перетаскиваемый объект.

Когда визуальный элемент области перетаскивания получает DragUpdatedEvent, ему необходимо обновить отзыв о перетаскивании. Например, вы можете переместить «призрак» перетаскиваемого объекта так, чтобы он оставался под указателем мыши.

Визуальный элемент области перетаскивания также должен проверять свойства DragAndDrop и устанавливать DragAndDrop.visualMode, чтобы указать эффект операции перетаскивания. Например, операция перетаскивания может создать новый объект, переместить существующий объект или отклонить операцию перетаскивания.

Событие DragPerform

Событие DragPerformEvent отправляется, когда пользователь перетаскивает любой перетаскиваемый объект и отпускает указатель мыши. над визуальным элементом. Это происходит только в том случае, если визуальный элемент устанавливает для DragAndDrop.visualMode значение, отличное от DragAndDropVisualMode.None или DragAndDropVisualMode.Rejected, чтобы указать, что он может принимать перетаскиваемые объекты.

Когда визуальный элемент области перетаскивания получает DragPerformEvent, он должен воздействовать на перетаскиваемые объекты, хранящиеся в DragAndDrop.objectReferences. , DragAndDrop.paths или DragAndDrop.GetGenericData().

Например, он может добавить новые визуальные элементы в то место, куда пользователь опускает объекты.

Событие перетаскивания

Событие DragEnterEvent отправляется, когда указатель входит в визуальный элемент во время операции перетаскивания.

Когда визуальный элемент области перетаскивания получает событие DragEnterEvent, он должен предоставить обратную связь, позволяющую пользователю узнать, что он или один из его дочерних элементов является мишенью для потенциального операция сброса. Например, вы можете добавить класс USS к целевому элементу и отобразить «призрак» перетаскиваемого объекта под указателем мыши.

Событие перетаскивания

Событие DragLeaveEvent отправляется, когда указатель покидает визуальный элемент, когда пользователь перемещает перетаскиваемый объект.

Когда визуальный элемент области перетаскивания получает DragLeaveEvent, он должен перестать обеспечивать обратную связь. Например, вы можете удалить класс USS, который вы добавили, когда целевой элемент получил DragEnterEvent, и больше не отображать «призрак» перетаскиваемого объекта.

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
Руководство Unity 2021.3