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 开箱即用,参数易于调整。它还可以让您随时在任何相机之间转换。
我正在与一家独立工作室合作进行一个项目,我被要求更改相机的工作方式 所以当玩家向上看时,镜头放大,当玩家向下看时镜头缩小。
我的解决方案有效,但它太活泼了。相机将立即变焦。我试过添加更多的 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 开箱即用,参数易于调整。它还可以让您随时在任何相机之间转换。