Отслеживание касания пустой области экрана Unity2D

Как реализовать в 2D проекте Unity отслеживание нажатия (OnPointerDown в EventTrigger) в области Canvas с учётом того, что на экране могут отображаться ещё и другие элементы (кнопки настройки, паузы и т.п.)? Как в Geometry Dash, Knife Hit, Crossy Road и других подобных играх, где используются ни джойстики и кнопки.

Я попробовал использовать Panel для этого, закинув на него EventTrigger с добавлением пары событий, но ничего не срабатывает. Без компонента Imagine на Button также ничего не срабатывает


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

Автор решения: MarkMa

Можно использовать Panel, Image, Button, Empty Object или любой другой объект, на котором есть компонент Image. На него нужно добавить компонент Event Trigger и выбрать нужные события. После этого вся область, занимаемая объектом, будет обрабатываться Event Trigger-ом

→ Ссылка
Автор решения: Andrew

Самым оптимальным решением является создать обьект Text внутри Канваса, очистить сам текст и проставить галочку "Raycast Target"

Ответ взят отсюда: http://answers.unity.com/answers/1157876/view.html


Данное решение более оптимальное чем использование прозрачной картинки или кнопки и не требует дополнительного написания скриптов, а так же, в отличии от "пустых картинок" не пытается дергать прорисовку на канавасе. Как следствие имеет лучшее быстродействие.

→ Ссылка