unity判断鼠标在不在UI上
关于判断鼠标在不在UI上
unity有自带的方法,很简单,关于射线的穿透也可以用下面方法
下面是代码:
这里需要引用 using UnityEngine.EventSystems; 命名空间
EventSystem.current.IsPointerOverGameObject()==true 的时候表示鼠标在Ui上面
EventSystem.current.IsPointerOverGameObject()==false 的时候表示鼠标不在Ui上面
if (!EventSystem.current.IsPointerOverGameObject()) { Debug.Log("不在UI上"); } else { Debug.Log("在UI上"); }
关于射线穿透也可以这样用在射线的地方加入这个判断,就可以了
下面贴上简单的代码(一看就懂)
if (Input.GetMouseButtonUp(0)) { ray = cameraa.ScreenPointToRay(Input.mousePosition); LayerMask ss = 1 << 9;//射线在第九层 RaycastHit raycastHit; if (Physics.Raycast(ray, out raycastHit, ss) && !EventSystem.current.IsPointerOverGameObject()) { //判断鼠标不在UI上且射线打到了物体 } }
在手机端的话
EventSystem.current.IsPointerOverGameObject(Input .GetTouch (0).fingerId))=True 表示在UI上面
EventSystem.current.IsPointerOverGameObject(Input .GetTouch (0).fingerId))=false 表示不在UI上面
本次就这么多了,喜欢请点个赞吧, 谢谢.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器