Суть такая. У меня есть игровое поле, на экране висит кнопка. Однако, когда я навожу на кнопку, также идет наводка и на ячейки, которые кнопка закрывает. Можно ли как-то ограничить трассировку этого луча до первого попадания или есть более элегантные методы? Пока только приходит на ум скрипт, который будет срабатывать, если мышь наведена на элемент интерфейса.
а у кнопки нет CanvasGroup с BlockRaycasts?
У интерфейсов есть свойство или как оно называется не знаю, но называется raycast target
Выключив его этот элемент не будет определяться.
То есть если речь идет о том, что если есть скажем панель, на ней картинка, картинка выше, а определять нужно панель, то можно отключить у картинки raycast target. Ну или наоборот.
Если требуется несколько объектов друг над другом и они должны быть доступны, то проверять все и выбирать из листа. А что бы каждый раз не определялось, то можно обычным способом сделать.
Если текущий объект не равен прошлому объекту, значит навели на новый элемент. Что то выполнить, новый присвоить старому и далее ждать пока изменится.
(Если я правильно вопрос понял)
FourGen
Понял тебя. Думал есть какие-то встроенные средства.
CanvasGroup -> Block Raycasts - встроенное средство, написали же
if (UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject()) // is the touch on the GUI
{//тычёк на УЙ, выходим
return;
}