- Home /
Unity mobile delta position not working as expected
Hey Guys,
I want that a certain action triggers when I dragged my finger across 10% of the screen's width. So what I do is like 0.1*Screen.Width and cumulate the position via the first touch like, Input.GetTouch(0).deltaPosition. And when my delaPosition.x > Screen.Width*0.1, I trigger my thing. But it seems like it take about 45-50% of the screen to get to actually 10% of the screen's width. Any ideas ?
// Touch Screen (mobile) support
if (Input.touchCount > 0)
{
var touch = Input.GetTouch (0);
mCumulatedDelta += touch.deltaPosition;
Debug.Log("INCREMENT : "+mCumulatedDelta);
}
else
{
Debug.Log("RESET");
mCumulatedDelta = Vector2.zero;
}
if (mCumulatedDelta.y < mMaxTolerableYDeviation)
{
if (mCumulatedDelta.x >= mMinRequiredXDeviation)
{
Debug.Log("CUMULATED DELTA : "+mCumulatedDelta);
if (OnSwipeRight != null)
OnSwipeRight(mCumulatedDelta.x);
mCumulatedDelta = Vector2.zero;
mLastMousePosition = Vector2.zero;
mReadMouse = false;
}
else if (mCumulatedDelta.x <= -mMinRequiredXDeviation)
{
Debug.Log("CUMULATED DELTA : "+mCumulatedDelta);
if (OnSwipeLeft != null)
OnSwipeLeft(mCumulatedDelta.x);
mCumulatedDelta = Vector2.zero;
mLastMousePosition = Vector2.zero;
mReadMouse = false;
}
}
Thanks a lot.
I think, in your case better use two position of touch: when began and when move events. And calculate your delta as division this two position.
Your answer
![](https://koobas.hobune.stream/wayback/20220613182903im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Object is passing from colliders when swipe with rigidbody.position 1 Answer
How can i use single swipe to run a character continuously. 0 Answers
Locking movement until character collides with walls, and moving character using a phone swipe. 0 Answers
Unity swipe controlls mobile 0 Answers
How to flick an object away with a swipe 0 Answers