Задать вопрос

Как НЕ выполнять условие при таче по UI элементам?

У меня есть условие. Нужно сделать так, чтобы при таче на смартфоне по UI Элементам условие НЕ срабатывало.
!EventSystem.current.IsPointerOverGameObject() срабатывает на десктопе, но на Андроиде игнориурется. Игра под WebGL, если запустить со смарфона, то по тачу UI элементов срабатывает это условие, чего бы не хотелось.
void Update()
        if (canExecute && (Input.GetMouseButtonDown(0) || Input.GetKeyDown(KeyCode.Space)) && !EventSystem.current.IsPointerOverGameObject() && !endGame)
        {
            canExecute = false;
            cooldownTimer = cooldownDuration;

            Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            directionKnife = mousePosition;
            mousePosition.z = 0f;
            GameObject knife = Instantiate(knifePrefab, mousePosition, Quaternion.identity);

            StartCoroutine(RotateKnife(knife));
        }
}

Подскажите как сделать так, чтобы при таче по UI элементам, данное условие НЕ срабатывало.
  • Вопрос задан
  • 307 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик игр на Unity
    13 месяцев
    Далее
  • Skillbox
    Middle-разработчик игр на Unity
    3 месяца
    Далее
  • GB (GeekBrains)
    Разработчик Игр на Unity
    10 месяцев
    Далее
Решения вопроса 1
Lapita12
@Lapita12
Тесты, тесты?
void Update()
{
    if (canExecute && (Input.GetMouseButtonDown(0) || Input.GetKeyDown(KeyCode.Space)) && !EventSystem.current.IsPointerOverGameObject(null, null) && !EventSystem.current.IsPointerOverGameObject(null, EventSystem.current.currentTouchEvent)) && !endGame)
    {
        canExecute = false;
        cooldownTimer = cooldownDuration;

        Vector3 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        directionKnife = mousePosition;
        mousePosition.z = 0f;
        GameObject knife = Instantiate(knifePrefab, mousePosition, Quaternion.identity);

        StartCoroutine(RotateKnife(knife));
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы