How To Set Scope Speed

Heya,

This is my ‘Scope Zoom In Scipt’. This script also goes with my Scope Script. This is the one to make it zoom in:

private var baseFOV : float;

function Start () {
    baseFOV = Camera.main.fieldOfView;
}


function Update () {
    if (Input.GetMouseButton(1))
        Camera.main.fieldOfView = 50;
    else
        Camera.main.fieldOfView = baseFOV;
}

My question is, How do I Set the speed of the zoom in? Right now it zooms in straight away. Thanks in advance!

You could use Mathf.Lerp to “fade” between your fields of view.

Take a look here.

Would be somthing like this:

You create a var to control the fade. When is 0 the scope is off, when is 1 is completly zoomed. So inside Update, you control this var with var += 0.1f*Time.deltaTime;

Just an idea… Read a little of Lerp function and good luck.

You could define the desired fov and make the actual fieldOfView follow it with a “Lerp filter”, a special use of Lerp that smooths out the transitions exactly like a RC low pass filter does in electronics (don’t panic, you don’t have to know electronics to use it!):

var speed: float = 5;
private var baseFOV : float;
private var FOV : float;

function Start () {
    baseFOV = Camera.main.fieldOfView;
    FOV = baseFOV;
}

function Update () {
    if (Input.GetMouseButton(1))
        FOV = 50;
    else
        FOV = baseFOV;
    // follow FOV via Lerp filter:
    Camera.main.fieldOfView = Mathf.Lerp(Camera.main.fieldOfView, FOV, speed * Time.deltaTime);
}