Проблема с отслеживанием нажатия на UI компонент

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

Проблема с отслеживанием нажатия на UI компонент

Сообщение Meerex 21 сен 2020, 14:45

Всем привет. Делаю игру под андроид. Нужно определить нажал я на UI елемент или на игровой. Делаю это с помощью EventSystem.current.currentSelectedGameObject. Работает очень плохо и может зарегистрировать нажатие по кнопке как за обычное.
eventsystem.current.ispointerovergameobject не работает
Meerex
UNец
 
Сообщения: 47
Зарегистрирован: 27 апр 2019, 18:44

Re: Проблема с отслеживанием нажатия на UI компонент

Сообщение 1max1 21 сен 2020, 14:51

eventsystem.current.ispointerovergameobject не работает

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

Re: Проблема с отслеживанием нажатия на UI компонент

Сообщение Meerex 21 сен 2020, 16:40

Если я использую IsPointerOverGameObject, то он будет считать нажатия на UI только после того, как на какой-небудь UI элемент уже нажали. А также, он не дает начать игру с первого клика после нажатия по кнопке.
Если я использую currentSelectedGameObject, тогда оно может среагировать на UI, а может и - нет.
Последний раз редактировалось Meerex 21 сен 2020, 18:53, всего редактировалось 1 раз.
Meerex
UNец
 
Сообщения: 47
Зарегистрирован: 27 апр 2019, 18:44

Re: Проблема с отслеживанием нажатия на UI компонент

Сообщение 1max1 21 сен 2020, 17:26

Оно не регистрирует нажатие, оно возвращает тру если указатель стоит на юи элементе. Я не знаю может ли клик по экрану пролететь быстрее, чем оно его увидит, но если так, то придется кидать ui-рейкаст чтобы увидеть кнопку во время нажатия.
https://docs.unity3d.com/2018.3/Documen ... ycast.html
Вообще, как ты юзал этот метод?
Примерно так?
Синтаксис:
Используется csharp
var touch = input.getTouch
if (touch.phase == began && !ispointerovergameobject)
    bla bla bla
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Проблема с отслеживанием нажатия на UI компонент

Сообщение Meerex 21 сен 2020, 18:03

1max1 писал(а):
Синтаксис:
Используется csharp
var touch = input.getTouch
if (touch.phase == began && !ispointerovergameobject)
    bla bla bla

Примерно
if (!isTap && Input.touchCount > 0 && !EventSystem.current.currentSelectedGameObject)
{
Touch touch = Input.GetTouch(0);
Meerex
UNец
 
Сообщения: 47
Зарегистрирован: 27 апр 2019, 18:44

Re: Проблема с отслеживанием нажатия на UI компонент

Сообщение 1max1 21 сен 2020, 18:47

Замени currentSelectedGameObject на EventSystem.IsPointerOverGameObject.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Проблема с отслеживанием нажатия на UI компонент

Сообщение Meerex 21 сен 2020, 18:53

Meerex писал(а):Если я использую IsPointerOverGameObject, то он будет считать нажатия на UI только после того, как на какой-небудь UI элемент уже нажали. А также, он не дает начать игру с первого клика после нажатия по кнопке.
Если я использую currentSelectedGameObject, тогда оно может среагировать на UI, а может и - нет.
Meerex
UNец
 
Сообщения: 47
Зарегистрирован: 27 апр 2019, 18:44

Re: Проблема с отслеживанием нажатия на UI компонент

Сообщение 1max1 21 сен 2020, 19:33

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

Re: Проблема с отслеживанием нажатия на UI компонент

Сообщение Meerex 21 сен 2020, 19:40

Я пытался разобраться в справке, но особо ничего не понял. Куда я должен повесить этот скрипт если у меня проверка была на движение перса?
Meerex
UNец
 
Сообщения: 47
Зарегистрирован: 27 апр 2019, 18:44


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

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

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