Игнорирование мыши

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Игнорирование мыши

Сообщение ustas235 16 май 2022, 22:38

Добрый день, народ.
Есть игровое поле(зеленое) с игровыми объектами (красные) и панелью с кнопками меню (белое):
Изображение
Объекты реагируют на нажатие мыши, в том числе и те что находятся под панелью с меню.
Как сделать так, чтобы объекты под панелью с меню не реагировали на нажатие мышкой?
Панель с меню у меня размещена на Canvas'e.
Проверка EventSystem.current.IsPointerOverGameObject() работает под Windows, но под андройдом не работает.
Я хотел повесить OnMouseDown() на панель с меню, чтобы попытаться перехватить клики, но похоже объекты размещенные на Canvas не реагируют на мышь.
Помогите советом.
ustas235
UNец
 
Сообщения: 23
Зарегистрирован: 25 мар 2018, 10:24

Re: Игнорирование мыши

Сообщение 1max1 16 май 2022, 23:01

Перевести крайние точки меню в ворлд координаты (если канвас в оверлее) и по ним растянуть коллайдер. Или в обработке клика кидать через графический рейкастер рейкаст и проверять нет ли там юи.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Игнорирование мыши

Сообщение ustas235 16 май 2022, 23:34

Спасибо. Про рэйкаст думал, но надеялся на что-то по проще. Буду раскуривать рэйкаст.
В общем, как я не раскуривал, но Raycast отказывался видеть объекты на Canvas'е. Не удалось мне его раскурить.
Но нашел в соседней ветке вот такое решение, оно работает и под Windows и под Android

Синтаксис:
Используется csharp
private static bool IsPointerOverUIObject()
    {
        PointerEventData eventDataCurrentPosition = new PointerEventData(EventSystem.current);
        eventDataCurrentPosition.position = new Vector3(Input.mousePosition.x, Input.mousePosition.y, Input.mousePosition.z);
        List<RaycastResult> results = new List<RaycastResult>();
        EventSystem.current.RaycastAll(eventDataCurrentPosition, results);
        return results.Count > 0;
    }
ustas235
UNец
 
Сообщения: 23
Зарегистрирован: 25 мар 2018, 10:24


Вернуться в Почемучка

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

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