- Home /
Question by
JesperGreen · Nov 03, 2020 at 07:58 AM ·
zoomfov
Add MaxFOV to zoom script?
Hi all.
I use this simple zoom script, changing the cameras Field of View instead of moving the camera and it works great.
However I would like to add a maximum FOV to it, like FOV 80 or so. Maybe also a Minimum FOV?
How can I do that using this script?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class zoomcam : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetAxis("Mouse ScrollWheel") > 0)
{
GetComponent<Camera>().fieldOfView--;
}
if (Input.GetAxis("Mouse ScrollWheel") < 0)
{
GetComponent<Camera>().fieldOfView++;
}
}
}
Comment
Answer by JesperGreen · Nov 06, 2020 at 06:23 AM
Ended up with this, if someone needs it:
private Camera cam;
[SerializeField] private float minFov = 20;
[SerializeField] private float maxFov = 80;
void Awake()
{
cam = GetComponent<Camera>();
// ensures that the field of view is within min and max on startup
UpdateFov(cam.fieldOfView);
}
void Update()
{
float scrollInput = Input.GetAxis("Mouse ScrollWheel");
if(scrollInput > 0)
UpdateFov(cam.fieldOfView - 1);
else if(scrollInput < 0)
UpdateFov(cam.fieldOfView + 1);
}
void UpdateFov(float newFov)
{
cam.fieldOfView = Mathf.Clamp(newFov, minFov, maxFov);
}
Your answer
Follow this Question
Related Questions
Zooming camera using move z position. 0 Answers
Oculus Go - Everything looks zoomed in, Change FoV 0 Answers
Java script Field of view 2 Answers