之前项目使用NGUI开发,在UGUI里面,可以使用UICamera提供的检测方法来检测是否点击到了NGUI的元素。现在我们使用UGUI开发,而且使用了两种点击输入(inputmouse和射线检测)。针对这种情况,使用unity EventSystem来进行检测UGUI的点击,然后在我们的场景点击输入端进行检测即可。
private bool IsClickUGUI()
{
if (EventSystem.current != null)
{
PointerEventData data= new PointerEventData(EventSystem.current);
eventData.position = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
List<RaycastResult> results = new List<RaycastResult>();
EventSystem.current.RaycastAll(data, results);
return results.Count > 0;
}
return false;
}