C# Unity. Как сделать плавное движение свайпом выделенного объекта на строгое количество шагов
Помогите решить задачу с перемещением в Unity. В общем на игровой 3D сцене необходимо плавно двигать кубы по оси X и Z. За один свайп куб должен переместиться только на один заданный шаг (переменная step), независимо от силы свайпа.
Вот кусок кода, отвечающего за перемещение по оси X:
void Update()
{
if (Input.touchCount == 1)
{
Touch screenTouch = Input.GetTouch(0);
if (screenTouch.phase == TouchPhase.Moved)
if (Mathf.Abs(screenTouch.deltaPosition.x) > 1)
{
targetPosition = transform.position
targetPosition.x += step * Mathf.Sign(screenTouch.deltaPosition.x);
}
}
transform.position = Vector3.Lerp(transform.position, targetPosition, speed * Time.deltaTime);
}
Но в моем коде объект движется все равно на разные расстояния.
И как лучше преобразовывать 2Д свайпы, если сцена выстроена в изометрической проекции. Иными словами, что бы диагональные свайпы воспринимались как горизонтальные.
