1.首先检测是否点击到UI
public static bool IsPointerOverUIObject()//检测是否点击到ui
{
if (EventSystem.current != null)
{
PointerEventData eventData = new PointerEventData(EventSystem.current);
eventData.position = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
List<RaycastResult> result = new List<RaycastResult>();
EventSystem.current.RaycastAll(eventData, result);
return result.Count > 0;
}
return false;
}
2.点击到UI之后判断是否需要点击到3D场景
if (IsPointerOverUIObject() != false)
{
//to do
}
else
{
//to do
}
备用
PointerEventData eventData = new PointerEventData(EventSystem.current);
eventData.position = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
List<RaycastResult> result = new List<RaycastResult>();
EventSystem.current.RaycastAll(eventData,result);
for (int i = 0; i < result.Count; i++)
{
print(result[i].gameObject.name);
}