Unity - керівництво система подій (eventsystem)
Система подій - спосіб відправки подій до об'єктів в додатку, заснований на введенні з клавіатури або миші; за допомогою торкань або персональних пристроїв. Система складається з декількох компонентів, які працюють разом.
Додавши компонент EventSystem до ігрового об'єкту, ви помітите, що він не містить особливої функціональності, тому що призначений для управління і організації зв'язку між модулями компонента.
Первинні ролі системи подій:
- визначає який об'єкт вважається виділеним
- визначає який InputModule використовується
- управляє райкастінгом (якщо потрібно) Оновлення всіх модулів введення (InputModules), якщо потрібно.
модулі введення
У модулях введення знаходиться основна логіка бажаного поведінки EventSystem, вони використовуються для:
- обробки введення
- Управління станами подій
- Відправки подій об'єктів на сцені.
Тільки один модуль введення може бути активним в системі подій одночасно. Він повинен знаходитися на тому ж ігровому об'єкті, що і компонент EventSystem.
Якщо ви бажаєте написати власний модуль введення, рекомендується відправляти події, підтримувані вже існуючими UI-компонентами Unity. Однак, ви можете розширювати і створювати власні події, як описано в документації по системі повідомлень (Messaging System).
Трасувальники променів (Raycasters)
Трасувальники променів використовуються для визначення над чим знаходиться покажчик. Їх використання - звичайна справа для модулів введення, для обчислення над чим знаходиться покажчик пристрої введення.
За замовчуванням, надається 3 трасувальника променів:
- GraphicRaycaster - використовується для UI-елементів
- 2DPhysicsRaycaster - використовується для двовимірних фізичних елементів
- 3DPhysicsRaycaster - використовується для тривимірних фізичних елементів
Якщо в сцені налаштований 2d / 3d трассировщик, дуже просто може зробити, щоб не-UI елементи отримували повідомлення від модуля введення. Просто приєднайте скрипт, який реалізує один з інтерфейсів обробки подій.