核心代码:
private GraphicRaycaster raycaster;
private void Awake ( )
{
raycaster = FindObjectOfType<GraphicRaycaster>();
}
private void Update ( )
{
if (Input.GetMouseButtonDown(0) && IsUI())
{
Debug.Log("点击了UI");
}
}
private bool IsUI ( )
{
PointerEventData data = new PointerEventData( EventSystem.current );
data.pressPosition = Input.mousePosition;
data.position = Input.mousePosition;
List<RaycastResult> raycastResults = new List<RaycastResult>();
raycaster.Raycast( data, raycastResults );
return raycastResults.Count > 0;
}