Unity judges whether the mouse is moved to the UI

static int uiLayer = 0;
    public static bool IsPointerOverUIObject()
    {
        if (uiLayer == 0)
        {
            uiLayer = LayerMask.NameToLayer("UI");
        }
        PointerEventData eventData = new PointerEventData(EventSystem.current);
        eventData.position = Input.mousePosition;

        List<RaycastResult> results = new List<RaycastResult>();
        EventSystem.current.RaycastAll(eventData, results);
        for (int i = 0; i < results.Count; i++)
        {
            if (results[i].gameObject.layer == uiLayer)
            {
                return true;
            }
        }
        return false;
    }

Guess you like

Origin blog.csdn.net/u014417405/article/details/130065653