在项目中会遇到弹出的UI窗口会对其进行相关的操作,这时候就会出现,在对UI操作的时候,他下面的3d的模型也会有相关的连锁穿透操作,这是我们不想看到的结果。怎么才能避免这样的现象出现,就需要让射线不穿透UI层,这样就可以了。
做一个简单的案例:已经有大神做好了,我只是在其上稍微修改了一下。
https://www.cnblogs.com/fly-100/p/4570366.html
主要的操作的有以下几个方面:
首先看一下场景的搭建,来进行UI是否穿透的测试
在Cube上挂载脚本:
void Update()
{
if(Input.GetMouseButtonDown(0))
{
GetComponent<Renderer>().material.color = new Color(Random.value, Random.value, Random.value, 1.0f);
}
}
这样点击Cube会变颜色,可是问题是在点击Button的时候也会变颜色,这个就不好了,下面我们修改一下脚本:
原理就不说了,上面博主的文章都讲的很明白,是基于UGUI底层实现原理
主要的就是这个原理:使用的UGUI中