Unity UI组件遮挡射线解决方法

在Unity中,有时会用到悬停显示的功能,显示的UI在鼠标下方会遮挡射线,导致脚本一直在切换OnPointerEnter和OnPointerExit两种状态,从而一直闪烁。
解决方法:为了让 infoShow 不遮挡射线,可以将其 CanvasGroup 组件的 interactable 和 blocksRaycasts 属性设置为 false。这样,infoShow 将不再拦截射线,但仍然可以在屏幕上显示。
如果 infoShow 上没有 CanvasGroup,你可以动态添加它并修改这些属性,或者直接修改 GameObject 的 RaycastTarget。

// 设置 infoShow 为不可交互,且不阻挡射线
if (infoShowCanvasGroup != null)
{
infoShowCanvasGroup.blocksRaycasts = false;
infoShowCanvasGroup.interactable = false;
}
发布于   xiins  阅读(73)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示