Update
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using UnityEngine;
|
||||
using static OnlyScove.Scripts.CameraController; // Need to add this to access CameraController.CameraViewMode
|
||||
|
||||
namespace OnlyScove.Scripts
|
||||
{
|
||||
@@ -7,19 +8,30 @@ namespace OnlyScove.Scripts
|
||||
{
|
||||
[Header("Dynamic FOV")]
|
||||
[SerializeField] private bool useDynamicFOV = true;
|
||||
[SerializeField] private float baseFOV = 60f;
|
||||
[SerializeField] private float sprintFOV = 70f;
|
||||
[SerializeField] private float tpvSprintFOV = 70f; // Renamed from sprintFOV for clarity
|
||||
[SerializeField] private float fovSmoothTime = 5f;
|
||||
|
||||
public void HandleDynamicFOV(Camera cam, InputReader inputReader)
|
||||
private float _currentTpvBaseFOV; // Stored from CameraController
|
||||
private float _currentFpvFOV; // Stored from CameraController
|
||||
|
||||
public float CurrentTpvBaseFOV => _currentTpvBaseFOV; // Expose for CameraController transitions
|
||||
|
||||
public void Initialize(float tpvBaseFOV, float fpvFOV)
|
||||
{
|
||||
_currentTpvBaseFOV = tpvBaseFOV;
|
||||
_currentFpvFOV = fpvFOV;
|
||||
}
|
||||
|
||||
public void HandleDynamicFOV(Camera cam, InputReader inputReader, CameraViewMode viewMode)
|
||||
{
|
||||
if (!useDynamicFOV || cam == null || inputReader == null) return;
|
||||
|
||||
float targetFOV = baseFOV;
|
||||
float targetFOV = (viewMode == CameraViewMode.ThirdPerson) ? _currentTpvBaseFOV : _currentFpvFOV;
|
||||
|
||||
if (inputReader.MoveInput.magnitude > 0.1f && inputReader.IsSprintHeld)
|
||||
// Apply sprint FOV only in TPV
|
||||
if (viewMode == CameraViewMode.ThirdPerson && inputReader.MoveInput.magnitude > 0.1f && inputReader.IsSprintHeld)
|
||||
{
|
||||
targetFOV = sprintFOV;
|
||||
targetFOV = tpvSprintFOV;
|
||||
}
|
||||
|
||||
cam.fieldOfView = Mathf.Lerp(cam.fieldOfView, targetFOV, fovSmoothTime * Time.deltaTime);
|
||||
|
||||
Reference in New Issue
Block a user