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

Чтобы не выполнять условие при таче по UI элементам в Unity, можно воспользоваться методом EventSystem.IsPointerOverGameObject. Этот метод позволяет проверить, находится ли указатель мыши или пальца (в зависимости от платформы) над объектом UI.

Вот пример кода, который позволяет определить, выполняется ли условие при таче по UI элементам:

using UnityEngine;
using UnityEngine.EventSystems;

public class ExampleScript : MonoBehaviour
{
    void Update()
    {
        // Проверяем, нажата ли кнопка мыши или произошло касание
        if (Input.GetMouseButtonDown(0) || Input.touchCount > 0)
        {
            // Проверяем, наведен ли указатель мыши или палец на UI
            if (!EventSystem.current.IsPointerOverGameObject())
            {
                // Если указатель мыши или палец не наведены на UI, выполняем код
                // Здесь можно разместить свою логику выполнения
                Debug.Log("Условие выполняется при таче за пределами UI элементов");
            }
        }
    }
}

В этом примере есть две проверки. Во-первых, мы проверяем, была ли нажата кнопка мыши или произошло ли касание на экране. Затем мы используем метод IsPointerOverGameObject, чтобы проверить, наведен ли указатель мыши или палец на объекты UI. Если указатель мыши или палец не наведены на UI, то условие выполняется, и вы можете разместить свою логику внутри этого блока кода.

Обратите внимание, что этот код можно использовать как в 2D-играх, так и в 3D-играх, и он будет работать как на ПК, так и на мобильных платформах.