Есть ли способ проверить, содержит ли Rect-преобразование точку? Заранее спасибо. Я попробовал Bounds.Contains() и RectTransformUtility.RectangleContainsScreenPoint(), но это не помогло мнеUnity Recttransform содержит точку
private bool AreCoordsWithinUiObject(Vector2 coords, GameObject gameObj)
{
Bounds bounds = gameObj.GetComponent<Renderer>().bounds;
return bounds.Contains(new Vector3(coords.x, coords.y, 0));
}
Таким образом, у меня есть ошибка «Там нет визуализатора прилагается к объекту», но я был прикреплен CanvasRenderer к нему.
RectTransformUtility.RectangleContainsScreenPoint(gameObj.GetComponent<RectTransform>(), coords);
Этот метод всегда возвращает ложные
if (AreCoordsWithinUiObject(point, lines[i]))
{
print("contains");
}
линии список геймобжекты
Просьба указать код, который вы пробовали. То, что у вас есть в вашем вопросе, - это просто функция. Поместите код, который не работает. И «Bounds.Contains», и «RectTransformUtility.RectangleContainsScreenPoint», и кто-то может определить вашу проблему. – Programmer
Я обновил сообщение с кодом –
Может быть, потому, что вы пытаетесь получить «Renderer», а не «CanvasRenderer»? –