Дрожит камера при её перемещении в 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 через эту же камеру