我想找出UI.Button
是否在Rect
区域内。
当我不熟悉Unity时,我看到的唯一方法是将按钮的矩形边界的所有4个点都检查为矩形区域,但是我找不到这些点。
我试图通过Renderer
从Collider
和gameObject.GetComponent<>.bounds
获取边界,但是按钮上没有附加renderer \ collider。除此之外,由于以某种方式渲染按钮,因此我没有理由为按钮创建渲染器,因此应该有一种无需创建其他组件即可实现我的目标的方法。
如何找到按钮的边界点或检查按钮是否完全在区域内?
答案 0 :(得分:1)
尝试这样的事情
public class ButtonOverlapTest : MonoBehaviour {
RectTransform rectTransform;
Rect otherRect = new Rect(20, 20, 100, 100);
void Start()
{
rectTransform = GetComponent<RectTransform>();
}
public void ButtonClicked()
{
if (rectTransform.rect.Overlaps(otherRect))
{
Debug.Log("Overlap!");
}
}
}
https://docs.unity3d.com/ScriptReference/RectTransform.html https://docs.unity3d.com/ScriptReference/Rect.Overlaps.html