如何在Unity3d中获取UI.Button的4点坐标

时间:2018-06-30 15:13:00

标签: c# unity3d

我想找出UI.Button是否在Rect区域内。

当我不熟悉Unity时,我看到的唯一方法是将按钮的矩形边界的所有4个点都检查为矩形区域,但是我找不到这些点。

我试图通过RendererCollidergameObject.GetComponent<>.bounds获取边界,但是按钮上没有附加renderer \ collider。除此之外,由于以某种方式渲染按钮,因此我没有理由为按钮创建渲染器,因此应该有一种无需创建其他组件即可实现我的目标的方法。

如何找到按钮的边界点或检查按钮是否完全在区域内?

1 个答案:

答案 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