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

Как НЕ выполнять условие при таче по 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 элементам, данное условие НЕ срабатывало.
  • Вопрос задан
  • 301 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Профессия Инженер
по тестированию
    10 месяцев
    Далее
  • Нетология
    Разработчик игр на Unity
    13 месяцев
    Далее
  • XYZ School
    Разработка игр на Unity
    5 месяцев
    Далее
Решения вопроса 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));
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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