This commit is contained in:
2026-04-02 08:59:51 +07:00
parent 7521850a56
commit 72f2a5f3e8

View File

@@ -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);