Проверка наличия объекта под объектом

Рейтинг: 0Ответов: 1Опубликовано: 29.03.2023

Как мне проверить, есть ли под одним объектом другой в unity2d. Все эти объекты элементы интерфейса и не имеют коллайдеров

public void OnEndDrag(PointerEventData eventData)
    { }

Ответы

▲ 0

Если объекты не имеют коллайдеров, то вы не сможете использовать стандартные методы определения пересечения коллайдеров. Вместо этого вы можете использовать RectTransformUtility.RectangleContainsScreenPoint(), чтобы определить, находится ли точка на экране в прямоугольнике RectTransform объекта.

Вот пример кода, который позволяет проверить, находится ли один объект над другим объектом:

public void OnEndDrag(PointerEventData eventData)
{
RectTransform rectTransform1 = gameObject1.GetComponent<RectTransform>();
RectTransform rectTransform2 = gameObject2.GetComponent<RectTransform>();
Vector2 screenPoint = eventData.position;

bool isContained = 
RectTransformUtility.RectangleContainsScreenPoint(rectTransform2, 
screenPoint);
if (isContained)
{
    Debug.Log("Object 1 is over object 2");
}
}