如何夹Input.mouseScrollDelta

How to clamp Input.mouseScrollDelta

我正在尝试使用鼠标按钮制作简单的滚动系统,并将相机的 Y 值固定在 10 到 100 之间,但每次它总是让它飞起来,除了我像这样做两个 ifs 的时候:

            if (camera.transform.position.y < 10)
            {
                camera.transform.position += new Vector3(0, 1, 0);
            }

            if (camera.transform.position.y > 100)
            {
                camera.transform.position += new Vector3(0, -1, 0);
            }

哪个有效,但我想使用 Clamps。目前我只有 camera.transform.position += new Vector3(0, Mathf.Clamp(-Input.mouseScrollDelta.y, 10, 100), 0);

但它再次让它飞起来。我已经尝试了不同的组合,但结果都是一样的,我不知道为什么......任何帮助都得到了赞赏

我尝试过的另一件事最终做了同样的事情是

camera.transform.position += new Vector3(0, -Input.mouseScrollDelta, 0)

Camera.transform.position += new Vector3(0, Mathf.Clamp(camera.transform.position, 10, 100));

你可以使用这个:

camera.transform.position += Vector3.up * -Input.mouseScrollDelta.y;
camera.transform.position = new Vector3(camera.transform.position.x, Mathf.Clamp(camera.transform.position.y, 10, 100), camera.transform.position.z);

Vector3 camPos = camera.transform.position;
camPos.y += -Input.mouseScrollDelta.y * speed;
camPos.y = Mathf.Clamp(camPos.y, 10, 100);
camera.transform.position = camPos;