Проверка наличия объекта под объектом
Как мне проверить, есть ли под одним объектом другой в unity2d. Все эти объекты элементы интерфейса и не имеют коллайдеров
public void OnEndDrag(PointerEventData eventData)
{ }
Ответы (1 шт):
Автор решения: Владимир Михайлов
→ Ссылка
Если объекты не имеют коллайдеров, то вы не сможете использовать стандартные методы определения пересечения коллайдеров. Вместо этого вы можете использовать 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");
}
}