针对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了,大家尝试一下吧~~~~~~

猜你喜欢

转载自blog.csdn.net/ep661215/article/details/50440861
今日推荐