Поскольку я новичок здесь, я не могу использовать комментарии, чтобы задавать дополнительные вопросы.
Что именно не работает при использовании Samsung?
Вы могли бы упростить вычисления, хотя.
float swipeValue = touch.position.x - startPos.x; //Mathf.Sign(touch.position.x - startPos.x);
if (swipeValue > 0)
{//right swipe
anim.Play(change_Line_Animation);
transform.localPosition = second_PosOfPlayer;
SoundManager.instance.PlayMoveLineSound();
}
else if (swipeValue < 0)
{//left swipe
anim.Play(change_Line_Animation);
transform.localPosition = first_PosOfPlayer;
SoundManager.instance.PlayMoveLineSound();
}
Вам не нужен Math.Sign, если сравнивать только с> или <0. </p>
case TouchPhase.Began:
startPos = touch.position.x; // startPos could be float
break;
и, следовательно,
float swipeDistHorizontal = Mathf.Abs(touch.position.x - startPos);
Если в игре используется только горизонтальное смахивание, вам не нужны векторы для хранения и вычисления дельты смахивания.
Если вы предоставите больше информации, я с радостью помогу вам.