Как НЕ выполнять условие при таче по 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 элементам, данное условие НЕ срабатывало.
  • Вопрос задан
  • 193 просмотра
Решения вопроса 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));
    }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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