пересечение курсора и UI GameObject

Программирование на Юнити.

пересечение курсора и UI GameObject

Сообщение Vogd 21 апр 2018, 10:19

Вроде простая задача - понять находится ли курсор над UI объектом GameObject с Image.
Но что-то не получается.

IPointerDownHandler и прочие использовать как я понял можно только на том же объекте, где и Image, если пробовать его подключать на контейнер, в котором картинка, то клик не детектится.
Пересечение с RectTransform.Rect тоже не работает, потому что у RectTransform свои размеры, ему пофиг на картинку внутри.
Назначать на объект с картинкой свой скрипт и ловить какие-то коллбеки мне кажется не совсем правильно.

Существует ли нормальный способ из кода определить, пересекается ли курсор с UI картинкой? Так чтобы на сам объект с картинкой не вешать скрипты?

Спасибо!
Vogd
UNIт
 
Сообщения: 55
Зарегистрирован: 04 май 2016, 15:46

Re: пересечение курсора и UI GameObject

Сообщение 1max1 21 апр 2018, 11:11

Ты хочешь определить с точностью до пикселя? Мол если где-то картинка имеет прозрачный фон то это место не детектить?
Если нужно просто в рект попасть попробуй рейкастом(хотя я не уверен что без коллайдера попадёт)
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: пересечение курсора и UI GameObject

Сообщение waruiyume 21 апр 2018, 11:48

Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: пересечение курсора и UI GameObject

Сообщение Vogd 21 апр 2018, 18:56

1max1
Мне достаточно попасть в Rect
Насколько я знаю, Raycast не применим для UI

waruiyume
эта переменная не поможет определить пересек курсор картинку или нет.
Vogd
UNIт
 
Сообщения: 55
Зарегистрирован: 04 май 2016, 15:46

Re: пересечение курсора и UI GameObject

Сообщение Vogd 21 апр 2018, 19:07

Я был не прав, считая что IPointerDownHandler и прочие не работают для объекта, на котором нет Image. Видимо я где-то накосячил, когда тестил.
В итоге самый нормальный способ определять пересечения мышки с UI объектами это вот эти расширения класса.

Подробнее:
https://stackoverflow.com/questions/413 ... ect=1&lq=1
Vogd
UNIт
 
Сообщения: 55
Зарегистрирован: 04 май 2016, 15:46


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 7