summaryrefslogtreecommitdiff
path: root/Assets/Scripts/CameraFOVWithDistance.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/CameraFOVWithDistance.cs')
-rw-r--r--Assets/Scripts/CameraFOVWithDistance.cs29
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);
+ }
+}