Реализовал движение камеры по оси Y свайпами по экрану. Все работает до того момента, когда мне нужно ограничить движение камеры с помощью Mathf.Clamp(); Этот метод не ограничивает, а просто перемещает камеру от одной точки к другой(резко) Ниже код, помогите, что не так?
public float speed;
private Vector2 startPos;
private Camera cam;
private float targetPos;
public void Start()
{
cam = GetComponent<Camera>();
targetPos = transform.position.y;
}
private void Update()
{
if (Input.GetMouseButtonDown(0)) startPos = cam.ScreenToWorldPoint(Input.mousePosition);
else if (Input.GetMouseButton(0)) {
float pos = cam.ScreenToWorldPoint(Input.mousePosition).y - startPos.y;
targetPos = Mathf.Clamp(transform.position.y - pos * 25, 0.71f, -25.54f);
}
transform.position = new Vector3(transform.position.x, Mathf.Lerp(transform.position.y, targetPos, speed * Time.deltaTime), transform.position.z);
}