首页 > Unity3D频道 > 【NGUI研究院之Unity插件】 > NGUI研究院之与EasyTouch结合使用(十五)
2014
07-14

NGUI研究院之与EasyTouch结合使用(十五)

用了EasyTouch插件一段时间了,小问题还是有一些,总体来说用起来还行。这篇文章我就来说说EasyTouch和NGUI的结合。

总体来说触摸屏幕也就三种情况。

1.触摸事件只响应NGUI部分,不响应3D部分。

2.触摸事件只响应3D部分,不响应NGUI部分。

3.触摸事件同时响应。

举个例子,在战斗场景我们希望通过手指滑动来控制摄像机的旋转。但是这时屏幕上可能还有一些UI的按钮,但是我们不希望用户点击UI按钮也影响到了摄像机的旋转。所以此时我们只希望触摸事件在3D部分响应。

1. 如下图所示,这里我增加了一个UISprite,我希望我的手指触摸事件只在UI上响应,不在3D上响应

NGUI研究院之与EasyTouch结合使用(十五) - 雨松MOMO程序研究院 - 1

 

2.我希望手指触摸只响应3D,不响应NGUI 。这里其实更多的运用于游戏的战斗界面,战斗界面的UI一般都集中在屏幕的四个角, 比如头像 小地图 技能 摇杆等等。EasyTouch提供了NGUI模式,可以很方便的解决这个问题,不过它原理也是用射线来判断,所以你要确保需要略过的UI空间有BoxCollider组件。

我们把所有NGUI做的界面放在UI层上面。代码简单的改改,这样EasyTouch就不会在UI层上响应了。

最后,我现在用的EasyTouch可能版本比较老,我用的版本是v3.1.1 因为目前项目也比较稳定,所以也不敢升级。EasyTouch这个版本里有一个BUG。就是超过10只手指在屏幕中滑动会出现空指针的错误,后来我看了一下代码,在UpdateTouches 里面做一下判断就好了。

NGUI研究院之与EasyTouch结合使用(十五) - 雨松MOMO程序研究院 - 2

 

EasyTouch有很强大的事件回调方法,大家可以去它的官网上查一下。不知道现在还有没有更好用的触屏插件,如果你觉得比EasyTouch还好用的话,希望你在下面给我留言,谢谢。

雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!

--

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。

  1. 请问我用了easytouch3.1插件做了摇杆和按钮,并且在unity3d中测试有摇杆和按钮,也好使。但是导出为APK文件后,在手机上测试怎么没有看见摇杆和按钮啊?

  2. 你下面那个相应u3d的脚本是单独写出来的还是,跟相应ui的脚本一起的,我单独列出的一个相应u3d的脚本,但是还能相应ui的,代码跟你的相应u3d的一样,问题处在何处,求大神解救

  3. 大大,我想使用easytouch做摇杆,用ngui做技能,并带有技能冷却,现在遇到的问题是,当我按住摇杆向前跑的时候,点击技能(ngui),那个摇杆就会卡在之前的位置上,不管我怎么摇都滑不动,除非我放开手,重新按摇杆,才会回到正常,这导致我在移动过程中,发完技能就不得不松手,不知道咋解决~~~~~~ NGUI研究院之与EasyTouch结合使用(十五) - 雨松MOMO程序研究院 - 1

  4. 接触u3d就一直看你的帖子,现在在做一个设计游戏,需要用虚拟摇杆(用的就是easytouch)控制准心,现在虚拟摇杆已经做好了,但是NGUI做的射击按钮不能和摇杆同时触发,先按摇杆的话,所有NGUI的button全部不能触摸。先按下NGUI的射击按钮,再按摇杆就可以同时响应…刚学习不多久,这个问题目前困住了我,还请momo帮忙解答下! NGUI研究院之与EasyTouch结合使用(十五) - 雨松MOMO程序研究院 - 1

  5. 请教一个问题,用EasyTouch的时候,在电脑上没问题,但手机上的时候,摇杆中心那个圆球经常卡在边界上不懂,然后这时候角色的移动就会失控,这是咋回事儿

    • 你用的是EasyTouch3.1.1么?我知道这个问题,这是Easytouch的一个bug,电脑上可以重现的,你动摇杆的时候,按住ctrl,拖动鼠标,电脑上会报错,可以通过修改Easytouch源文件临时修复这个bug,http://forum.unity3d.com/threads/released-easy-touch.135192/page-13#post-1400790,这个网址上面有,Easytouch制作团队回复的。

  6. 請問如果是用 NGUI 加上 滑鼠點擊地面人物行 走會衝突到怎麼辦?因為一個是NGUI攝影機,另一個而是3D畫面的攝影機,無法使用Raycast判斷