Version: 5.3 (switch to 5.4b)
IL2CPP
Messaging System

Система событий (EventSystem)

Система событий - способ отправки событий к объектам в приложении, основанный на вводе с клавиатуры или мыши; с помощью касаний или персональных устройств. Система состоит из нескольких компонентов, работающих вместе.

Обзор

Добавив компонент EventSystem к игровому объекту, вы заметите, что он не содержит особой функциональности, потому что предназначен для управления и организации связи между модулями компонента.

Первичные роли системы событий:

  • определяет какой объект считается выделенным
  • определяет какой InputModule используется
  • управляет райкастингом (если нужно) Обновление всех модулей ввода (InputModules), если требуется.

Модули ввода

В модулях ввода находится основная логика желаемого поведения EventSystem, они используются для:

  • Обработки ввода
  • Управления состояниями событий
  • Отправки событий объектам на сцене.

Только один модуль ввода может быть активным в системе событий одновременно. Он должен находиться на том же игровом объекте, что и компонент EventSystem.

Если вы желаете написать собственный модуль ввода, рекомендуется отправлять события, поддерживаемые уже существующими UI-компонентами Unity. Однако, вы можете расширять и создавать собственные события, как описано в документации по системе сообщений (Messaging System).

Трассировщики лучей (Raycasters)

Трассировщики лучей используются для определения над чем находится указатель. Их использование - обычное дело для модулей ввода, для вычисления над чем находится указатель устройства ввода.

По умолчанию, предоставляется 3 трассировщика лучей:

  • GraphicRaycaster - используется для UI-элементов
  • 2DPhysicsRaycaster - используется для двумерных физических элементов
  • 3DPhysicsRaycaster - используется для трехмерных физических элементов

Если в сцене настроен 2d/3d трассировщик, очень просто может сделать, чтобы не-UI элементы получали сообщения от модуля ввода. Просто присоедините скрипт, который реализует один из интерфейсов обработки событий.

IL2CPP
Messaging System