Unity/UI

[Unity] 마우스(포인터)가 UI위에 있는지 확인하기

Oniboogie 2022. 5. 11. 13:25
    private bool IsPointerOverUI()
    {
        PointerEventData pointerEventData = new PointerEventData(EventSystem.current);
        pointerEventData.position = Input.mousePosition;

        List<RaycastResult> results = new List<RaycastResult>();
        EventSystem.current.RaycastAll(pointerEventData, results);

        for (int i = 0; i < results.Count; i++)
        {
            if (results[i].gameObject.layer == LayerMask.NameToLayer("UI"))
                return true;
        }

        return false;
    }

 

당연한거지만 UI오브젝트의 레이어는 UI로 돼있어야한다

기본적으로 생성하면 레이어가 UI로 돼있다.