首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >touch.phase == TouchPhase.Canceled未工作

touch.phase == TouchPhase.Canceled未工作
EN

Stack Overflow用户
提问于 2014-08-09 12:20:34
回答 1查看 1.7K关注 0票数 3

我厌倦了处理和解决与多点触摸相关的问题。我同时使用最多5次触摸,但当两个对象上有两次触摸时,我移动手指,那么这两次触摸都触发了TouchPhase.Ended事件,但没有触发TouchedPhase.Canceled事件。

当我的手指从那些物体中取出时,我想发射TouchPhase.Canceled

代码语言:javascript
复制
if (touch.phase == TouchPhase.Began) { 
   hitObject.GetComponent ().TouchDown (hitObject); 
}

if (touch.phase == TouchPhase.Ended) { 
   hitObject.GetComponent ().TouchExit (hitObject); 
}

if (touch.phase == TouchPhase.Moved || touch.phase == TouchPhase.Stationary) { 
   hitObject.GetComponent ().TouchStay (hitObject); 
}

if (touch.phase == TouchPhase.Canceled) { 
   print ("Touched canceled...."); 
   hitObject.GetComponent ().TouchExit (hitObject); 
}
EN

回答 1

Stack Overflow用户

发布于 2014-08-20 12:28:47

如果我正确理解你的评论

听着,我的屏幕上有一个对象,我用光线投射来检测object.in hitObject I存储的那个hittedObject,当我的手指触到那个对象时,它就能工作了。如果我从那个被击中的物体(也就是worked.when )中摸到我的手指,那么我的手指就会停留在那个物体上,或者我将我的手指移到同样工作的那个被击中的物体上。但是,在移动我的手指时,如果它是在那个对象之外移动的,那么应该触发TouchPhase.Canceled事件。但那行不通。这是我的问题。我怎么才能解决呢?

我想停止拖动/交换手指(而不是移动)在被击中的物体上,我能做什么呢?

你将不得不限制基于触摸位置的滑动。

代码语言:javascript
复制
var realWorldPos = Camera.main.ScreenToWorldPoint(touch.position);

if(realWorldPos.x < maximumXSwipePosition && realWorldPos.x > minimumXSwipePosition)
{
    //do the stuff you want to do
}
//otherwise, don't do it.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25218525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档