using System; using UnityEngine; public class CameraFOVWithDistance : MonoBehaviour { public PlayerTracker tracker; public Camera camera; public float lerpSpeed = 0.15f; private float _targetFOV; private float _minDistance = 7.5f; private float _maxDistance = 16.5f; private float _minFOV = 25f; private float _maxFOV = 45f; private void Update() { var distancePercent = Mathf.InverseLerp(_minDistance, _maxDistance, Math.Clamp(tracker.Distance, _minDistance, _maxDistance)); _targetFOV = Mathf.Lerp(_minFOV, _maxFOV, distancePercent); } private void FixedUpdate() { camera.fieldOfView = Mathf.Lerp(camera.fieldOfView, _targetFOV, lerpSpeed); } }