我们在做项目的时候可能经常会有这样的需求,比如判断鼠标是否位于UI上面,这个在unity里面判断还是比较容易的,主要需要使用using UnityEngine.EventSystems; 命名空间。


EventSystem.current.IsPointerOverGameObject()==true 的时候表示鼠标在Ui上面

EventSystem.current.IsPointerOverGameObject()==false 的时候表示鼠标不在Ui上面


 上面这个是对于pc端的,Unity里面还有专门处理移动端的,如下。


EventSystem.current.IsPointerOverGameObject(Input .GetTouch (0).fingerId))==True 表示在UI上面

EventSystem.current.IsPointerOverGameObject(Input .GetTouch (0).fingerId))==false 表示不在UI上面


 注意:上面的方法需要勾选UI组件里面的RaycastTarget,这个默认是勾选的,如果不需要进行UI射线检测最好去掉勾选,因为勾选会消耗性能。