From d08e5a8128025b19c34b07b5e754749a0c3b6844 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Sat, 31 Jan 2026 13:05:30 +0800 Subject: 实现相机 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/CameraFOVWithDistance.cs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 Assets/Scripts/CameraFOVWithDistance.cs (limited to 'Assets/Scripts/CameraFOVWithDistance.cs') 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); + } +} -- cgit