Unity相机在放大/缩小时进行平移



我有这个方法平移相机前/后和左/右。我不知道为什么,但是是什么导致相机在靠近地形时移动得很好,但在缩小时移动得很慢?

这是我如何平移相机:

void CameraPan(){
    if(Input.GetMouseButton(2)){
        transform.rotation = transform.rotation;
        transform.Translate(Vector3.right * -Input.GetAxis("Mouse X") * 20f, Space.World);
        transform.Translate(Vector3.forward * -Input.GetAxis("Mouse Y") * 20f, Space.World);
    }
}

这是我缩放的方法:

void CameraZoom(){
    float scroll = Input.GetAxis("Mouse ScrollWheel");
    if(scroll < 0){
        transform.Translate(0, 0, scroll * scrollSpeed);
    }else if(scroll > 0){
        transform.Translate(0, 0, scroll * scrollSpeed);
    }
}

无论我是放大还是缩小,我怎么做才能使相机以相同的速度平移?

计算你的变焦系数-这个数字可以是任何代表你的变焦(例如,它可以是从你的相机到你的视图中心的物体的距离)

在计算CameraPan时,使用该缩放因子乘以Translate参数(例如,如果缩放因子是距离,则当您缩小=在更大的距离时,您将平移更多)

最新更新