UGUI检测射线穿透的方法

来源:互联网 发布:菜鸟网络上市 编辑:程序博客网 时间:2024/05/18 01:06
  • 一种是通过EventSystem的RaycastAll检测
  • 一种是通过GraphicRaycaster的Raycast检测

这里写图片描述
这里写图片描述
+ 两种方法,代码如下

 public static bool IsPointerOverUIObject() {        PointerEventData eventDataCurrentPosition = new PointerEventData(EventSystem.current);        eventDataCurrentPosition.position = new Vector2(Input.mousePosition.x, Input.mousePosition.y);        List<RaycastResult> results = new List<RaycastResult>();        EventSystem.current.RaycastAll(eventDataCurrentPosition, results);        return results.Count > 0;    }public static bool IsPointerOverUIObject(Canvas canvas, Vector2 screenPosition){        PointerEventData eventDataCurrentPosition = new PointerEventData(EventSystem.current);        eventDataCurrentPosition.position = screenPosition;        GraphicRaycaster uiRaycaster = canvas.gameObject.GetComponent<GraphicRaycaster>();        List<RaycastResult> results = new List<RaycastResult>();        uiRaycaster.Raycast(eventDataCurrentPosition, results);        return results.Count > 0;}

参考:http://www.cnblogs.com/fly-100/p/4570366.html
https://github.com/k79k06k02k/Utility

原创粉丝点击