Дрожит камера при её перемещении в Unity

Пишу простецкий код для 2D игрухи для перемещения камеры: после того, как пользователь кликает, а затем двигает мышь, камера движется по такому же вектору, что и мышь, с ограничениями (позиция y = 0, позиция x от leftBorder до rightBorder). В двух словах обычное движение камеры за мышью (как в RTS, для наблюдения, только в 2D).

Вот код (повешенный на главную камеру):

    private void Update()
    {
        if (mouseDown)
        {
            Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
            mousePos.z = 1;
            mouseSecondPosition = mousePos;
            movementDistance = mouseSecondPosition - mouseFirstPosition;
            mouseFirstPosition = mouseSecondPosition;
        }

        if (Input.GetMouseButtonDown(0))
        {
            mouseDown = true;
            mouseFirstPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
        }

        if (Input.GetMouseButtonUp(0))
        {
            mouseDown = false;
        }
    }

    private void LateUpdate()
    {
        if (mouseDown)
        {
            transform.position += movementDistance;
            transform.position = new Vector3(Mathf.Clamp(transform.position.x, leftBorder, rightBorder), 0, -10);
        }
    }

Однако камера движется в обратном направлении и очень быстро. Если же изменить логику её перемещения с

transform.position += movementDistance;

на

transform.position -= movementDistance;

то камера начинает жутко дрожать (слева направо, короткими и быстрыми рывками). Как это можно исправить? Подозреваю что это из-за того, что я нахожу позицию мыши mousePos через эту же камеру


Ответы (0 шт):