Есть регионы, нажатия на них отслеживаю при помощи Physics2D.Raycast. Столкнулся с проблемой, что если объект находится под UI, raycast все равно цепляет его. Пробовал пользоваться этим методом EventSystem.current.IsPointerOverGameObject(). Однако если объект находится прямо под UI, он не срабатывает.
Пробовал также отслеживать через event system находится ли курсор на UI, но такая же проблема. Если под UI есть объект, то события не срабатывают. Использовал OnPointerEnter, OnPointerExit.
private void trackMouseClick()
{
if (Input.GetMouseButtonDown(0)
&& !EventSystem.current.IsPointerOverGameObject())
{
Vector2 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
RaycastHit2D hit = Physics2D.Raycast(mousePosition, Vector2.zero);
if (hit.collider != null && hit.collider.GetComponent<PolygonCollider2D>() != null)
{
Debug.Log("Нажали на регион");
region = hit.collider.GetComponent<Region>();
regionButtons.show();
}
else
{
Debug.Log("Нажали вне региона");
regionButtons.hide();
}
}
}