Unity3D中 Box Collider 2D 覆盖 OnMouseDown

利用Unity3D 自带的UI组件做界面时,因为Button组件不能很好的满足需求。所以很多时候是手动在控件上添加BoxCollider2D组件。

这时候很容易遇见一个问题:

“有两个panel上都加上了BoxCollider2D组件,Apanel上点击某按钮,弹出Bpanel,这时候因为Apanel还存在,上面的BoxColider2D也会收到鼠标点击事件,所以在Bpanel上点击按钮时会对Apanel上的按钮误操作。”


一个解决方法是在Bpanel的整个背景上添加BoxCollider2D组件,吞噬掉鼠标点击事件。

但是实践中发现,AB两个panel所处的Layer很可能是一样的,虽然我们通过修改渲染顺序使得Bpanel显示在前面了,但是Apanel上按钮的触摸层级很可能比Bpanel还要高。

这时候只需要调整Bpanel的RectTransform中的posz,使其更靠近相机,则Bpanel背景上的BoxCollider2D,就会把Apanel的所有触摸都挡住。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值