unity 判断鼠标是否在哪个UI上的两种方法

第一种 可以得到UI, 再根据名字判断是不是自己自己要点击的UI
其中参数canvas拖入此UI的canvas

 /// 
        /// 获取鼠标停留处UI
        /// 
        /// 
        /// 
        public GameObject GetOverUI(GameObject canvas)
        {
            PointerEventData pointerEventData = new PointerEventData(EventSystem.current);
            pointerEventData.position = Input.mousePosition;
            GraphicRaycaster gr = canvas.GetComponent();
            List results = new List();
            gr.Raycast(pointerEventData, results);
            if (results.Count != 0)
            {
                return results[0].gameObject;
            }

            return null;
        }

第二种就简单了,
rect 为要判断的那个UI的RectTransform

bool isUI = RectTransformUtility.RectangleContainsScreenPoint(rect, Input.mousePosition)

你可能感兴趣的:(UNITY)