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;
}