Страница 1 из 1

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

СообщениеДобавлено: 21 сен 2020, 14:45
Meerex
Всем привет. Делаю игру под андроид. Нужно определить нажал я на UI елемент или на игровой. Делаю это с помощью EventSystem.current.currentSelectedGameObject. Работает очень плохо и может зарегистрировать нажатие по кнопке как за обычное.
eventsystem.current.ispointerovergameobject не работает

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

СообщениеДобавлено: 21 сен 2020, 14:51
1max1
eventsystem.current.ispointerovergameobject не работает

Показывай как ты это понял.

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

СообщениеДобавлено: 21 сен 2020, 16:40
Meerex
Если я использую IsPointerOverGameObject, то он будет считать нажатия на UI только после того, как на какой-небудь UI элемент уже нажали. А также, он не дает начать игру с первого клика после нажатия по кнопке.
Если я использую currentSelectedGameObject, тогда оно может среагировать на UI, а может и - нет.

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

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

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

СообщениеДобавлено: 21 сен 2020, 18:03
Meerex
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);

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

СообщениеДобавлено: 21 сен 2020, 18:47
1max1
Замени currentSelectedGameObject на EventSystem.IsPointerOverGameObject.

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

СообщениеДобавлено: 21 сен 2020, 18:53
Meerex
Meerex писал(а):Если я использую IsPointerOverGameObject, то он будет считать нажатия на UI только после того, как на какой-небудь UI элемент уже нажали. А также, он не дает начать игру с первого клика после нажатия по кнопке.
Если я использую currentSelectedGameObject, тогда оно может среагировать на UI, а может и - нет.

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

СообщениеДобавлено: 21 сен 2020, 19:33
1max1
Ну тогда по ссылке выше рейкастом чекай.

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

СообщениеДобавлено: 21 сен 2020, 19:40
Meerex
Я пытался разобраться в справке, но особо ничего не понял. Куда я должен повесить этот скрипт если у меня проверка была на движение перса?