diff options
Diffstat (limited to 'Assets/Scripts/CameraFOVWithDistance.cs')
| -rw-r--r-- | Assets/Scripts/CameraFOVWithDistance.cs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Assets/Scripts/CameraFOVWithDistance.cs b/Assets/Scripts/CameraFOVWithDistance.cs new file mode 100644 index 0000000..56c3562 --- /dev/null +++ b/Assets/Scripts/CameraFOVWithDistance.cs @@ -0,0 +1,29 @@ +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); + } +} |
