请教大大们一个unityunity3d touch事件件的问题

《javascript高级程序设计》 touch事件的一个小错误 - 强大大 - 博客园
  最近一段时候都在拜读尼古拉斯大神的《javascript高级程序设计》,真的是一本好书,通俗易懂,条理比《javascript权威指南》好理解一些,当然《javascript权威指南》有权威指南的优点,不闲话了,入正题。
& & &看技术书我通常都喜欢把书上的代码敲一遍,虽然很花时间,但只有动手敲的时候,脑中才有各种乱七八糟的想法蹦出来,为什么不能按照自己想的写,为什么书上的代码更好更优雅,还有没有别的办法去解决眼前的问题,想的多了,理解就很深,当然最重要的就是记得牢了。即使很浅显易懂的代码,我也照样敲一遍,没办法强迫症伤不起。
& & &在417页,13.4.9节中,关于javascript中触摸和手势事件的讲解中,有一段代码我这边怎么运行都不对。后来大胆猜测应该是书上的一个错误,先敲出来,如果我错了,希望大神帮忙指正。
  书中代码如下:
function handleTouchEvent(event){
//只跟踪一次触摸
if (event.touches.length == 1){    var output = document.getElementById("output");      switch(event.type){        case "touchstart":
          output.innerHTML = "Touch started (" + event.touches[0].clientX +"," + event.touches[0].clientY + ")";
          break;
        case "touchend":
          output.innerHTML += "&br&Touch ended (" +event.changedTouches[0].clientX + "," +event.changedTouches[0].clientY + ")";
          break;
        case "touchmove":
          event.preventDefault(); //阻止滚动
          output.innerHTML += "&br&Touch moved (" +event.changedTouches[0].clientX + "," +event.changedTouches[0].clientY + ")";
          break;
      }
EventUtil.addHandler(document, "touchstart", handleTouchEvent);
EventUtil.addHandler(document, "touchend", handleTouchEvent);
EventUtil.addHandler(document, "touchmove", handleTouchEvent);
  出错的地方在这里:
&  当触发touchstart和touchmove事件的时候没有问题,程序能正确的进入 if &然后根据case执行对应的语句,但是当触发touchend事件的时候,event.touches.length已经等于0了,不能再进入if 中,也就不能执行case中的语句,所以触发touchend的时候永远不会执行程序。正确的程序应该是
if (event.touches.length == 1||event.touches.length==0){&&}
  我测试的时候使用的是chrome浏览器,因为条件限制没有真正的用手机去测。如果我理解有错的地方还望大家指出。再次向尼古拉斯大神表示致敬。安全检查中...
请打开浏览器的javascript,然后刷新浏览器
< 浏览器安全检查中...
还剩 5 秒&Unity3d中FingerGesture与NGUI的事件响应问题 -
- CSDN博客
&#xe614;博客专家
Unity3d中FingerGesture与NGUI的事件响应问题
当前项目中同时用到了NGUI与FingerGestures两个插件,对于按键的响应会有一些麻烦。
如何控制事件响应的顺序?
通常情况下,触发按下事件应当优先响应UI层的事件,首先想到的是调整脚本的执行顺序;然而却发现调整脚本的执行顺便并不会改变同一事件响应两次的情况,由于NGUI与FingerGestures直接由Unity.Touch获取输入事件。
潜在的需求
对于NGUI与FingerGestures响应事件的情况,可以划分为以下三种:
1&仅有NGUI响应事件;
2&仅有FingerGesture响应事件;
3&同时响应
本文意在解决第一种情况(或者说区分事件响应在NGUI层还是FingerGestures层)
分析NGUI和FingerGestures的代码和文档
在FingerGestures.cs文件中找到如下代码:
#region Global Input Filter
/// &summary&
/// Return tru
/// &/summary&
/// &param name=&fingerIndex&&The index of the finger that just touched the screen&/param&
/// &param name=&position&&The new finger position if the input is let through&/param&
/// &returns&True to let the touch go through, or false to block it&/returns&
public delegate bool GlobalTouchFilterDelegate( int fingerIndex, Vector2 position );
GlobalTouchFilterDelegate globalTouchFilterF
/// &summary&
/// Can specify a method to selectively prevent new touches from being processed until they are released.
/// This can be useful to globally deny gesture events from being fired when above a region of the screen,
/// or when the input has been consumed by another input system
/// &/summary&
public static GlobalTouchFilterDelegate GlobalTouchFilter
get { return instance.globalTouchFilterF }
set { instance.globalTouchFilterFunc = }
protected bool ShouldProcessTouch( int fingerIndex, Vector2 position )
if( globalTouchFilterFunc != null )
return globalTouchFilterFunc( fingerIndex, position );
可以看到FingerGestures已经包含有一个全局的输入过滤器,如若需要过滤FingerGestures对于输入事件的响应,只需实现对应代理即可。
解决方案:
找到一份参考资料:,其原理是利用Physics.Raycast进行判断,其中我们的需求需要指定碰撞检测的层级,文中需要过滤的层级是NGUI层,注意下文中这段代码的出处是由于那个外国作者的层级关系NGUI为第8个层级,不要盲目照搬代码!
查看自己的项目中NGUI控件所在的层级:
可以看到我的工程中存在一个名为UI的图层,我们将所有的UI调整为该图层,然后进行相应的编码:
/// &summary&
/// 设置 FingerGestures 全局输入过滤器 执行接口
/// &returns&True: FingerGestures需要响应输入事件,False: 表示无需响应输入事件&/returns&
/// &/summary&
bool FingerGestureShouldProcessTouch(int fingerIndex, Vector2 position)
bool FGpressTouch =
Ray ray = UICamera.currentCamera.ScreenPointToRay(position);
bool hanlded = Physics.Raycast(ray, Mathf.Infinity, 1 && LayerMask.NameToLayer(&UI&));
///& 判断UI层是否响应过事件
FGpressTouch = !
return FGpressT
对于层级概念的深入理解可以参考:
我的热门文章
即使是一小步也想与你分享《TOUCH》常见问题整理(二)
作者:佚名 来源:网络 发布时间: 09:23
内容摘要:二、游戏玩法类问题 1、登陆官网后无法开始游戏? 答复:《TOUCH》是采用unity3D开发的,首先需要正确安装unityplayer插件后,方可运行游戏。 2、为什么进入不了【普通大厅】和【自由大...
  二、游戏玩法类问题
  1、登陆官网后无法开始游戏?
  答复:《TOUCH》是采用unity3D开发的,首先需要正确安装unityplayer插件后,方可运行游戏。
  2、为什么进入不了【普通大厅】和【自由大厅】?
  答复:&普通大厅&和&自由大厅&需要玩家等级达到10级后,方可进入。
  3、游戏中如何互相赠送衣服?
  答复:已经购买的物品,都存放在【背包】中,物品只要不是出于过期和绑定状态,均可以赠送给其他玩家;在【商城】中的服饰,直接点击【赠】即可将物品付款后赠送给其他玩家,同样点击【索】也可以向指定玩家索要该商品。
  4、游戏中人缘值和缘分值有什么区别?
  答复:人缘值是玩家接受别人发起的交互动作获得的值;缘分值是玩家与玩家之间可以进行测试缘分的一个值。
  5、排行榜送哪些道具?
  答复:排行榜前三名有奖励,VIP奖励手杖,富豪榜奖励翅膀,等级奖励王冠,一等奖有特效设置。
  6、排行榜多久刷新一次?
  答复:每天凌晨刷新。
  7、为什么现在部分社团成员不再显示IP地址。
  答复:目前在个人信息里面选择保密则在社团里面也不显示IP地址,后续可能会继续优化,以游戏版本为主。你写unity3d学习遇到的问题,我来解决_unity3d吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:73,655贴子:
你写unity3d学习遇到的问题,我来解决收藏
Unity3d感觉都学会了,但是理解的不够,所以帮助解决有问题的同学,看看还有什么地方不会的,共同进步。
提问内容不包括:ugui
怎么编辑导入进来的动画
就是动画编辑器是read only
如何给场景里弄一个跳转菜单(下拉式的)。(比如需要填省份,我们是可以选择的)!可以解决吗?
楼主好!我用的是5.0版的
在UI里创建Text,然后用程序gameObject.Find(&Csnvas/wenzi&).GetComponent.&UnityEngine.UI.Text&().text=&射弹数:&+但没有显示出来,说是对象的引用未设置到对象的实例,还有到哪里设置什么?
请问easytouch的人物无法实现碰撞,会走到墙里去怎么办,碰撞器什么的都试过
—来自NOKIA Lumia 925
用轮子做的车停在斜坡上,受重力会下滑,该怎么刹wheel collide
从左到右跳动的小球,摄像机跟随,怎么样让摄像机只跟随从左到右而不跳动啊?谢谢...
类似RPG游戏,AB键分别为一个攻击动作,同时按两个键,为什么他会做完A后然后不紧不慢的做B动作。效果上应该同时按的话也是做一个动作。=。=
好奇想了解下魂斗罗里这种跳跃效果怎么实现
easytouch怎么实现两个手指拉伸摄像机?看了样例还是没找到
对unity一窍不通 想从基本学起
用ngui做血条
想要实例化出怪物时带血条怎么弄
大神求助啊!!!一开始我建场景贴图都没什么问题,贴图材质也导入成功显示了,可是今天想完善下功能里面那些sbsar后缀的贴图全部变成像图片一样不可识别文件。场景也变成没有任何贴图,怎么办,要交作业了,救命百度找不到解决方法啊
我在shader下添加cubemap,一点反光都没有,我的是n卡,但是考到我同学的a卡电脑上就有了,我们很多人都有这个问题,请问如何调。。好纠结这个问题
lz你好,我是初学者,刚开始看慕课望里的快速入门,讲到脚本那就不懂了,一定要有c#基础么?(官方的那个教程适不适合我这种啥都会一点的初学者呢,还是去学好C再来)
先感谢楼主。本人渣新一个,刚升级了Unity5.1,测试IOS发布时遇到这个问题(如图),请问如何解决?方便复制粘贴:Error building Player: IOException: Failed to Copy File / Directory from &#39;E:\Unity5\Editor\Data\Tools/MapFileParser/MapFileParser&#39; to &#39;Temp/StagingArea\Trampoline\MapFileParser&#39;.看起来好像是Unity找不到那个文件了,可是那个位置确实有那个文件,是个.exe文件,并没有丢失。之前用Unity4没有这个现象。
怎么找资源 像是僵尸这些能自己手画吗用什么软件
如图,用鼠标拖拽下面的3个物体到上方的8*8格子中,我想实现拖拽到对应的格子可以固定在那里(8*8中任意一个),如果没有拖动到格子里松开鼠标,物体会返回到初始位置。请问大家我该如何实现。
移动平台上,怎么做类似狂野飚车8那种 实时反射(性能消耗不要太高)
做新手引导界面,怎么高亮区域?是想高亮矩形或者圆形区域,而不是简单的将想高亮的按钮层级提高,找了好多都是说用shader,但又没找到真正能用的
楼主 我是新手,请问怎么把动画加到模型体中,老提示缺少动画组件
我下下来的还要注册,我的邮箱对啊,结果不管,哪有不要登陆的最好还是中文的
让角色飞行是要角色有飞行动画吗
准备用第三视角来做一个飞行的
unity运行时调的参数怎么保存起来(重新运行时改动会重置)?
unity 如何实现抛物线 弹道轨迹抛物线怎么做? 数学不行.现在需要那种急速往上,缓慢往下的那种抛物线的轨迹感...不打算用刚体,不好控制...网上也找了下关于抛物线的代码,可惜没有急速往上,缓慢往下降的感觉 因该如何做呢 ?求指教!!
登录百度帐号推荐应用}

我要回帖

更多关于 unity easytouch5下载 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信