Unity - 如何通过相机移动进行放大和缩小?

Unity - How to zoom in and out with camera movement?

我正在与一家独立工作室合作进行一个项目,我被要求更改相机的工作方式 所以当玩家向上看时,镜头放大,当玩家向下看时镜头缩小。

我的解决方案有效,但它太活泼了。相机将立即变焦。我试过添加更多的 larping 或平滑但它没有帮助。我相信有更优雅的方式来做到这一点。 如果有人能提供帮助,我很高兴。

float currentPitch = Values.pitch;
    if(currentPitch > lastFramPitch){
        Values.runTimeDistanceFromTarget.z += Values.zoomSensitivity;
        Values.runTimeDistanceFromTarget.z = Mathf.Lerp(Values.runTimeDistanceFromTarget.z , Values.zoomIn , Values.zoomSensitivity);
    }
    else{
                    Values.runTimeDistanceFromTarget.z -= Values.zoomSensitivity;
        Values.runTimeDistanceFromTarget.z = Mathf.Lerp(Values.runTimeDistanceFromTarget.z , Values.zoomOut , Values.zoomSensitivity);
    }

    lastFramPitch = currentPitch ; 

Cinemachine 开箱即用,参数易于调整。它还可以让您随时在任何相机之间转换。