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

Как НЕ выполнять условие при таче по 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 элементам, данное условие НЕ срабатывало.
  • Вопрос задан
  • 332 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик игр на Unity
    13 месяцев
    Далее
  • Академия Эдюсон
    Разработчик игр на Unity + ИИ
    6 месяцев
    Далее
  • Stepik
    PRO C#. Профессия "Разработчик игр на Unity"
    6 месяцев
    Далее
Решения вопроса 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));
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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