From 72f2a5f3e83f4ec33ef7526cb10449e42d4dcb36 Mon Sep 17 00:00:00 2001 From: ngtuanz Date: Thu, 2 Apr 2026 08:59:51 +0700 Subject: [PATCH] camera --- .../Scripts/Camera Controller/CameraDynamicFOV.cs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/Assets/Scripts/Camera Controller/CameraDynamicFOV.cs b/Assets/Scripts/Camera Controller/CameraDynamicFOV.cs index 5a8f6143..d0eb6601 100644 --- a/Assets/Scripts/Camera Controller/CameraDynamicFOV.cs +++ b/Assets/Scripts/Camera Controller/CameraDynamicFOV.cs @@ -9,6 +9,7 @@ namespace OnlyScove.Scripts [Header("Dynamic FOV")] [SerializeField] private bool useDynamicFOV = true; [SerializeField] private float tpvSprintFOV = 70f; // Renamed from sprintFOV for clarity + [SerializeField] private float fpvSprintFOV = 95f; // Target FOV for sprinting in FPV [SerializeField] private float fovSmoothTime = 5f; private float _currentTpvBaseFOV; // Stored from CameraController @@ -26,12 +27,16 @@ namespace OnlyScove.Scripts { if (!useDynamicFOV || cam == null || inputReader == null) return; - float targetFOV = (viewMode == CameraViewMode.ThirdPerson) ? _currentTpvBaseFOV : _currentFpvFOV; + bool isSprinting = inputReader.MoveInput.magnitude > 0.1f && inputReader.IsSprintHeld; + float targetFOV; - // Apply sprint FOV only in TPV - if (viewMode == CameraViewMode.ThirdPerson && inputReader.MoveInput.magnitude > 0.1f && inputReader.IsSprintHeld) + if (viewMode == CameraViewMode.ThirdPerson) { - targetFOV = tpvSprintFOV; + targetFOV = isSprinting ? tpvSprintFOV : _currentTpvBaseFOV; + } + else // FirstPerson + { + targetFOV = isSprinting ? fpvSprintFOV : _currentFpvFOV; } cam.fieldOfView = Mathf.Lerp(cam.fieldOfView, targetFOV, fovSmoothTime * Time.deltaTime);