29 lines
853 B
C#
29 lines
853 B
C#
|
|
using UnityEngine;
|
||
|
|
|
||
|
|
namespace OnlyScove.Scripts
|
||
|
|
{
|
||
|
|
[System.Serializable]
|
||
|
|
public class CameraDynamicFOV
|
||
|
|
{
|
||
|
|
[Header("Dynamic FOV")]
|
||
|
|
[SerializeField] private bool useDynamicFOV = true;
|
||
|
|
[SerializeField] private float baseFOV = 60f;
|
||
|
|
[SerializeField] private float sprintFOV = 70f;
|
||
|
|
[SerializeField] private float fovSmoothTime = 5f;
|
||
|
|
|
||
|
|
public void HandleDynamicFOV(Camera cam, InputReader inputReader)
|
||
|
|
{
|
||
|
|
if (!useDynamicFOV || cam == null || inputReader == null) return;
|
||
|
|
|
||
|
|
float targetFOV = baseFOV;
|
||
|
|
|
||
|
|
if (inputReader.MoveInput.magnitude > 0.1f && inputReader.IsSprintHeld)
|
||
|
|
{
|
||
|
|
targetFOV = sprintFOV;
|
||
|
|
}
|
||
|
|
|
||
|
|
cam.fieldOfView = Mathf.Lerp(cam.fieldOfView, targetFOV, fovSmoothTime * Time.deltaTime);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|