Работа С Eventsystem В Unity. Базовые Вещи В Работе С Ui

Всем привет! Давно ничего не писал, но сейчас мне захотелось рассказать вам об очень удобной вещи, о которой многие не знают. Это система событий в Unity. Многие люди, для задач, для которых EventSystem очень удобен, используют обычный Raycast. Я расскажу о том, как использовать часть функционала EventSystem (его на самом деле очень много) и как этот инструмент позволяет быстро решать множество задач, связанных с обработкой событий интерфейсов и объектов.

Как всегда репозиторий с примерами.

Если вам интересно, добро пожаловать под кат!

Работа с EventSystem в Unity. Базовые вещи в работе с UI

В этой статье я разберу и приведу примеры работы с событиями IPointerEnterHandler, IPointerExitHandler, IPointerDownHandler, IPointerUpHandler, IPointerClickHandler, IDragHandler, IBeginDragHandler, IEndDragHandler (полный список событий вы можете посмотреть здесь ).

Что такое система событий? EventSystem — система, отвечающая за обработку различных событий в сцене.

По сути, это позволяет:

  • Определите, какой GameObject «выбран»
  • Управление используемыми методами ввода
  • Управление рейкастингом
В этой статье мы рассмотрим третий пункт подробнее, так как он наиболее простой и удобный в использовании.

Что касается raycasts, в EventSystem доступны три основных компонента:

  • Графический Raycaster — используется для работы с пользовательским интерфейсом.

  • Physics 2D Raycaster — используется для взаимодействия с физическими объектами в 2D.
  • Physics Raycaster — используется для взаимодействия с физическими объектами в 3D.
Важной деталью для всех взаимодействий, будь то физика или пользовательский интерфейс, является присутствие на сцене объекта EventSystem.

Работа с EventSystem в Unity. Базовые вещи в работе с UI

Начнем с самого простого — с системы пользовательского интерфейса.

EventSystem с ним работает проще и лучше всего.

Дело в том, что при создании Canvas модуль сразу добавляет в сцену все необходимые компоненты, такие как сам EventSystem и Graphic Raycaster. В случае с пользовательским интерфейсом система событий позволяет легко создавать собственные кнопки и основные взаимодействия с различными элементами пользовательского интерфейса.

Например, давайте посмотрим на IPointerEnterHandler, IPointerExitHandler, IPointerDownHandler, IPointerUpHandler, IPointerClickHandler, IDragHandler, IBeginDragHandler, IEndDragHandler. Чтобы элемент пользовательского интерфейса реагировал на события входа (IPointerEnterHandler), выхода (IPointerExitHandler) курсора мыши, необходимо реализовать эти интерфейсы в требуемом объекте.

Это помогает во многих случаях, когда нужно что-то выделить, подсветить и т. д. На примере с тестовой сценой и изображением это позволяет в несколько строк кода создавать подобные взаимодействия: Теги: #unity #eventsystem #unity3d #C++ #raycasting #gamedev #gamedevelopment #games #unity #.

NET #C++ #unity

Вместе с данным постом часто просматривают: