Unity EventTrigger событие в непрямоугольной, произвольной замкнутой области

Для того чтобы использовать EventTrigger необходимо две вещи:

  1. Сам EventTrigger и хотябы одно событие в нём (для примера рассматриваем PointerClick)
  2. Graphic объект, собственно, он и будет ловить рейкасты

Мне необходимо отлавливать клики по "картинкам" непрямоугольной формы.

В Unity есть обычные Image объекты, которые представляют собой прямоугольный Graphic объект. Так же, в нём есть отличный набор 2D коллидеров любой формы. Но, коллидеры работают в паре с физикой, а EventTrigger делает рейкаст именно на Graphic объекты.

Собственно, сам вопрос: можно ли сделать Graphic аналог PolygonCollider2D/EdgeCollider2D, который будет представлять замкнутую область произвольной формы (у самого PolygonCollider2D/EdgeCollider2D есть годный редактор)?

Возможно, мне всё же придётся писать свой EventTrigger, который будет кидать рейкасты в коллидеры, работающие в режиме триггеров? Тогда почему EventTrigger не умеет этого изначально?

Я смутно представляю как это сделать, так как докопался только до меша. Я могу переопределить OnPopulateMesh в Graphic (визуальное представление нашего объекта), и представить свою область в виде треугольников/прямоугольников. Меш требует делать кучу низкоуровневых операций, и даже имея массив точек замкнутой области мне придётся формировать треугольники/прямоугольники, которыми нужно оптимально заполнить замкнутую область. В общем, по мне - это довольно объёмная работа, и я никак не могу поверить, что в Unity не придумали ничего на этот счёт. Неужели всё сделано так что "тыкать" можно только в прямоугольные Graphic объекты? Подскажите, пожалуйста.


Ответы (0 шт):