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

Get*_*awn 5 c# unity-game-engine

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

这是我平移相机的方式:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我缩放的方式:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

无论我是放大还是缩小,我都可以做些什么来以相同的速度平移相机?

Jin*_*nov 0

计算您的缩放系数 - 该数字可以是代表您的缩放的任何数字(例如,它可以是从您的相机到视图中心的物体的距离)

当您计算 CameraPan 时,使用此缩放系数乘以 Translate 参数(例如 - 如果您的缩放系数是距离,则当您缩小 = 距离更远时,您将平移更多)