I’m having a weird zooming in issue with my vcam controller script. I’m using a Virtual Camera.
Normal zooming in (near to far distance zoom) works fine.
Zooming in with camera tilting is making the camera very jerky while it is rotating. Why is this happening?
This is my code:
using UnityEngine;
using Cinemachine;
public class VCamController : MonoBehaviour
{
// Important stuff here.
public CinemachineVirtualCamera vcam;
// Variables used in calculations to make the script logic work.
//private float defaultZoom = 20f;
private float zoom = 20f;
private float zoomChangeAmount = 50f;
private float tilt = 70f;
private float tiltChangeAmount = 100f;
public bool camTilt = false;
private void Update()
{
ScrollZoom();
}
void ScrollZoom()
{
if (Input.mouseScrollDelta.y > 0)
{
zoom -= zoomChangeAmount * Time.deltaTime;
zoom = Mathf.Clamp(zoom, 10f, 30f);
vcam.GetCinemachineComponent<CinemachineFramingTransposer>().m_CameraDistance = zoom;
if (camTilt == true)
{
tilt -= tiltChangeAmount * Time.deltaTime;
tilt = Mathf.Clamp(tilt, 40f, 80f);
vcam.transform.rotation = Quaternion.Euler(tilt, vcam.transform.rotation.y, vcam.transform.rotation.z);
}
}
if (Input.mouseScrollDelta.y < 0)
{
zoom += zoomChangeAmount * Time.deltaTime;
zoom = Mathf.Clamp(zoom, 10f, 30f);
vcam.GetCinemachineComponent<CinemachineFramingTransposer>().m_CameraDistance = zoom;
if (camTilt == true)
{
tilt += tiltChangeAmount * Time.deltaTime;
tilt = Mathf.Clamp(tilt, 40f, 80f);
vcam.transform.rotation = Quaternion.Euler(tilt, vcam.transform.rotation.y, vcam.transform.rotation.z);
}
}
}
}