Войти
UnityФорумОбщее

Заблокировать мышь на интерфейсе

#0
13:15, 16 июля 2022

Суть такая. У меня есть игровое поле, на экране висит кнопка. Однако, когда я навожу на кнопку, также идет наводка и на ячейки, которые кнопка закрывает. Можно ли как-то ограничить трассировку этого луча до первого попадания или есть более элегантные методы? Пока только приходит на ум скрипт, который будет срабатывать, если мышь наведена на элемент интерфейса.

#1
8:47, 17 июля 2022

а у кнопки нет CanvasGroup с BlockRaycasts?

#2
10:06, 17 июля 2022

У интерфейсов есть свойство или как оно называется не знаю, но называется raycast target
Выключив его этот элемент не будет определяться.

То есть если речь идет о том, что если есть скажем панель, на ней картинка, картинка выше, а определять нужно панель, то можно отключить у картинки raycast target. Ну или наоборот.

Если требуется несколько объектов друг над другом и они должны быть доступны, то проверять все и выбирать из листа. А что бы каждый раз не определялось, то можно обычным способом сделать.
Если текущий объект не равен прошлому объекту, значит навели на новый элемент. Что то выполнить, новый присвоить старому и далее ждать пока изменится.
(Если я правильно вопрос понял)

#3
19:14, 19 июля 2022

FourGen
Понял тебя. Думал есть какие-то встроенные средства.

#4
9:23, 20 июля 2022

CanvasGroup -> Block Raycasts - встроенное средство, написали же

#5
3:38, 21 июля 2022

            if (UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject())    // is the touch on the GUI
            {//тычёк на УЙ, выходим
                return;
            }

UnityФорумОбщее