Version: 2018.4
Debugging C# code in Unity
Messaging System

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

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

Обзор

When you add an Event System component to a GameObject you will notice that it does not have much functionality exposed, this is because the Event System itself is designed as a manager and facilitator of communication between Event System modules.

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

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

Модули ввода

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

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

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

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

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

Raycasters are used for figuring out what the pointer is over. It is common for Input Modules to use the Raycasters configured in the scene to calculate what the pointing device is over.

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

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

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

Debugging C# code in Unity
Messaging System