针对NGUI点击穿透UI,场景响应的问题

    大家在游戏中点击物体拾取物体时,初学者常用的就是射线扫描(反正我现在用的就是射线照射,哈哈···),获取物体信息然后产生某些设定好的反应,但是我在应用中发现当我点击UI上的按钮时,发现如果UI 遮盖的后面有任务物品的话,同时也触发了任务物品,这是我们不希望发生的事件,但是由于NGUI的的点击事件是它自身的camera判断的,而我们点击物品是main Camera判断的,二者各司其职,所以才会造成共同响应的问题。但是该怎么避免呢?

   大家可能用过UIEventListener.Get (gameObject).onHover这句代码,这是判断鼠标是否进去该UI区域,其原理其实和获得他的Tag值差不多,因此当该UI上覆盖有其他按钮的时候这个方法就很鸡肋,并不好用,我看网上还有一个方法是给UI一个Tag值,判断是否是UI,这个大家可以试一下,反正我测试的是没用的。

   现在要说的就是NGUI提供的UICamera.isOverUI方法,就挂在你main Camera的射线扫描前就行,该语句是返回布尔值,当射线扫描到UI就截断射线,就会使射线禁止穿透,具体使用是if (UICamera.isOverUI  == false) {/*获取物品代码*/},这样就OK了,大家尝试一下吧~~~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值