针对NGUI点击穿透UI,场景响应的问题
2015-12-31 12:13
274 查看
大家在游戏中点击物体拾取物体时,初学者常用的就是射线扫描(反正我现在用的就是射线照射,哈哈···),获取物体信息然后产生某些设定好的反应,但是我在应用中发现当我点击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了,大家尝试一下吧~~~~~~
大家可能用过UIEventListener.Get (gameObject).onHover这句代码,这是判断鼠标是否进去该UI区域,其原理其实和获得他的Tag值差不多,因此当该UI上覆盖有其他按钮的时候这个方法就很鸡肋,并不好用,我看网上还有一个方法是给UI一个Tag值,判断是否是UI,这个大家可以试一下,反正我测试的是没用的。
现在要说的就是NGUI提供的UICamera.isOverUI方法,就挂在你main Camera的射线扫描前就行,该语句是返回布尔值,当射线扫描到UI就截断射线,就会使射线禁止穿透,具体使用是if (UICamera.isOverUI == false) {/*获取物品代码*/},这样就OK了,大家尝试一下吧~~~~~~
相关文章推荐
- Description The project was not built due to "Could not delete
- UIScrollView在有点击手势的情况下,会导致UITableView的cell点击事件无法响应
- iOS开发 UICollectionView详解+实例
- 【日常】摸一摸怎样把LOL修改成英文版
- UUId与keychain
- Java线程(篇外篇):阻塞队列BlockingQueue
- UVa1608 UVaLive6258 Non-boring sequences
- UITableViewCell的选中时的颜色设置
- Selenium获取input值的两种方法:WebElement.getAttribute("value")和WebElement.getText()
- 重写UIView
- WeUI首页、文档和下载 - 专为微信设计的 UI 库 - 开源中国社区
- UICollectionViewFlowLayout has cached frame mismatch for index path <NSIndexPath: 0xc000000001400016
- iOS开发UI篇章 15-项目中的常见文件
- layer设置UIImageView圆形不圆的问题
- iOS日期选择器(UIDatePicker)
- iOS中UIImage存为本地文件,UIImage转换为NSData
- Flash builder4.5免注册
- iOS内存优化——OperationQueue悄悄给你挖的坑
- 双飞翼布局介绍-始于淘宝UED
- iOS UITextView 高度随文字自动增加,并跟随键盘移动(二)