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); }
标签:current,EventSystem,穿透,点击,UI,result,eventData,new,UGUI From: https://www.cnblogs.com/dj1232090/p/16936549.html