我厌倦了处理和解决与多点触摸相关的问题。我同时使用最多5次触摸,但当两个对象上有两次触摸时,我移动手指,那么这两次触摸都触发了TouchPhase.Ended事件,但没有触发TouchedPhase.Canceled事件。
当我的手指从那些物体中取出时,我想发射TouchPhase.Canceled。
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);
}发布于 2014-08-20 12:28:47
如果我正确理解你的评论
听着,我的屏幕上有一个对象,我用光线投射来检测object.in hitObject I存储的那个hittedObject,当我的手指触到那个对象时,它就能工作了。如果我从那个被击中的物体(也就是worked.when )中摸到我的手指,那么我的手指就会停留在那个物体上,或者我将我的手指移到同样工作的那个被击中的物体上。但是,在移动我的手指时,如果它是在那个对象之外移动的,那么应该触发TouchPhase.Canceled事件。但那行不通。这是我的问题。我怎么才能解决呢?
和
我想停止拖动/交换手指(而不是移动)在被击中的物体上,我能做什么呢?
你将不得不限制基于触摸位置的滑动。
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.https://stackoverflow.com/questions/25218525
复制相似问题