using Cinemachine; using UnityEngine; public class CameraZoom : MonoBehaviour { public float zoomAmt; private float timeSinceKeyPress; private float timeSinceKeyRelease; private bool zoomingIn; private bool zoomingOut; private float baseFOV; private float zoomFOV; //private Camera playerCam; private CinemachineVirtualCamera vCam; private void Start() { //playerCam = GetComponent<Camera>(); vCam = GetComponent<CinemachineVirtualCamera>(); baseFOV = vCam.m_Lens.FieldOfView; zoomFOV = baseFOV - zoomAmt; } private void Update() { if (vCam.m_Lens.FieldOfView != zoomFOV) { if (Input.GetKey(KeyCode.Mouse1)) { zoomingOut = false; if (!zoomingIn) { timeSinceKeyPress = 0.0f; zoomingIn = true; } timeSinceKeyPress += Time.deltaTime; vCam.m_Lens.FieldOfView = Mathf.Lerp(vCam.m_Lens.FieldOfView, zoomFOV, timeSinceKeyPress); } } if (vCam.m_Lens.FieldOfView != baseFOV) { if (!Input.GetKey(KeyCode.Mouse1)) { zoomingIn = false; if (!zoomingOut) { timeSinceKeyPress = 0.0f; zoomingOut = true; } timeSinceKeyPress += Time.deltaTime; vCam.m_Lens.FieldOfView = Mathf.Lerp(vCam.m_Lens.FieldOfView, baseFOV, timeSinceKeyPress); } } } public void SetNewFOV(float newFOV) { baseFOV = newFOV; zoomFOV = baseFOV - zoomAmt; } }