- Home /
Question by
Cbjfan1 · Apr 16, 2013 at 10:03 PM ·
mousezoomsensitivitysniper
Sniper Zoom Problem
Hey everyone. I'm working on a script where the mouse sensitivity lowers when I zoom in. Despite what I set the variable to, the sensitivity always instantly goes to 0.004 or something, and I can't move in unless I zoom out. Does anyone know what the problem is? Here is the script:
var zoomedinx = 4.0;
var zoomediny = 4.0;
var zoomedoutx = 10.0;
var zoomedouty = 10.0;
function Update () {
if (Input.GetKey ("e")){
GetComponent("MouseLook").sensitivityX = Mathf.Max(GetComponent("MouseLook").sensitivityX-zoomedinx, 1*Time.deltaTime);
GetComponent("MouseLook").sensitivityY = Mathf.Max(GetComponent("MouseLook").sensitivityY-zoomediny, 1*Time.deltaTime);
audio.Play();
animation.Play();
}
if (Input.GetKey ("q")){
GetComponent("MouseLook").sensitivityX = Mathf.Lerp(GetComponent("MouseLook").sensitivityX, zoomedoutx, 1*Time.deltaTime);
GetComponent("MouseLook").sensitivityY = Mathf.Lerp(GetComponent("MouseLook").sensitivityY, zoomedouty, 1*Time.deltaTime);
audio.Play();
animation.Play();
}
}
Comment
Answer by iwaldrop · Apr 16, 2013 at 10:31 PM
I think you meant to do this:
MouseLook mouseLook;
function Awake()
{
mouseLook = GetComponent("MouseLook");
}
function Update ()
{
if (Input.GetKey ("e")
{
mouseLook.sensitivityX -= zoomedinx * Time.deltaTime;
mouseLook.sensitivityY -= zoomediny * Time.deltaTime;
audio.Play();
animation.Play();
}
if (Input.GetKey ("q"))
{
mouseLook.sensitivityX += zoomedoutx * Time.deltaTime;
mouseLook.sensitivityY += zoomedouty * Time.deltaTime;
audio.Play();
animation.Play();
}
}
You'll probably want to check your current zoom level against a max to decide if you want to zoom in/out any more. In your $$anonymous$$ouseLook script add a value that tracks current Zoom and initialize it to 0.
int currentZoomLevel;
int maxZoomLevel;
Then, as you're zoo$$anonymous$$g, subtract or add one to it so you can check against it.
if (mouseLook.currentZoomLevel < mouseLook.maxZoomLevel && Input.Get$$anonymous$$ey("e"))
{
// zoom in
mouseLook.currentZoomLevel++;
}
if (mouseLook.currentZoomLevel > 0 && Input.Get$$anonymous$$ey("q"))
{
// zoom out
mouseLook.currentZoomLevel--;
}