Unity - керівництво система подій (eventsystem)

Система подій - спосіб відправки подій до об'єктів в додатку, заснований на введенні з клавіатури або миші; за допомогою торкань або персональних пристроїв. Система складається з декількох компонентів, які працюють разом.

Додавши компонент EventSystem до ігрового об'єкту, ви помітите, що він не містить особливої ​​функціональності, тому що призначений для управління і організації зв'язку між модулями компонента.

Первинні ролі системи подій:

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

модулі введення

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

  • обробки введення
  • Управління станами подій
  • Відправки подій об'єктів на сцені.

Тільки один модуль введення може бути активним в системі подій одночасно. Він повинен знаходитися на тому ж ігровому об'єкті, що і компонент EventSystem.

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

Трасувальники променів (Raycasters)

Трасувальники променів використовуються для визначення над чим знаходиться покажчик. Їх використання - звичайна справа для модулів введення, для обчислення над чим знаходиться покажчик пристрої введення.

За замовчуванням, надається 3 трасувальника променів:

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

Якщо в сцені налаштований 2d / 3d трассировщик, дуже просто може зробити, щоб не-UI елементи отримували повідомлення від модуля введення. Просто приєднайте скрипт, який реалізує один з інтерфейсів обробки подій.