- Home /
Mouse-Scroll Zoom
I have a zoom script, with two variables (minZoom, and maxZoom). These change the FOV of the camera. I want to have it so when you scroll down, to make the FOV bigger, and scroll up, makes it smaller but so it doesn't go past the min and max zoom. And if you do answer, I will be very grateful! Cheers!
var anim : Animator;
var cam : Camera;
var gunCam : Camera;
var player : GameObject;
var minZoomAmount : float;
var maxZoomAmount : float;
var normalAmount : float;
var smooth : float = 5;
var look1 : Component;
var look2 : Component;
var look3 : Component;
var normalSensitivity : float = 5;
var zoomSensitivity : float = 1;
private var isZoomed = false;
var normalCross : GameObject;
var zoomCross : GameObject;
function Start()
{
anim.GetComponent(Animator);
look1 = cam.GetComponent("MouseLook");
look2 = player.GetComponent("MouseLook");
look3 = gunCam.GetComponent("MouseLook");
}
function Update()
{
if(Input.GetButtonDown("Zoom"))
{
isZoomed = !isZoomed;
}
var curZoom : float;
zoom = Input.GetAxis("Mouse ScrollWheel");
if(zoom > 0)
{
}
if(isZoomed == true)
{
cam.fieldOfView = Mathf.Lerp(cam.fieldOfView, curZoom, Time.deltaTime * smooth);
look1.sensitivityY = zoomSensitivity;
look2.sensitivityX = zoomSensitivity;
look3.sensitivityY = zoomSensitivity;
normalCross.SetActive(false);
zoomCross.SetActive(true);
}
else
{
cam.fieldOfView = Mathf.Lerp(cam.fieldOfView, normalAmount, Time.deltaTime * smooth);
look1.sensitivityY = normalSensitivity;
look2.sensitivityX = normalSensitivity;
look3.sensitivityY = normalSensitivity;
normalCross.SetActive(true);
zoomCross.SetActive(false);
}
anim.SetBool("Zoom", isZoomed);
}
sorry if its sorta messy
Comment
It is unclear what you want from this question. If you want help with your script, we need to see the script.
Answer by rakkarage · May 18, 2014 at 05:16 AM
if (Input.mousePresent)
{
float scroll = Input.GetAxis("Mouse ScrollWheel");
if (scroll < 0)
{
int newPrefs = Prefs.Zoom - 1;
int newZoom = (int)Mathf.Pow(newPrefs, Constants.ZoomFactor);
if (newZoom >= Constants.ZoomMin)
{
Prefs.Zoom = newPrefs;
GameCamera.ZoomFactor = newZoom;
}
}
if (scroll > 0)
{
int newPrefs = Prefs.Zoom + 1;
int newZoom = (int)Mathf.Pow(newPrefs, Constants.ZoomFactor);
if (newZoom <= Constants.ZoomMax)
{
Prefs.Zoom = newPrefs;
GameCamera.ZoomFactor = newZoom;
}
}
}