- Home /
 
Camera Zoom Input change.
Hello
I found this script on the forums, which is just what i need. But i need it to use the mouse scrollwheel. This being in C# i have no idea how to do it. Any help would be appreciated.
 using UnityEngine;
 
 using System.Collections;
 
  
 
 public class CameraZoom : MonoBehaviour {
 
     public int zoomLevelSelected;
 
     public float altFieldOfView = 60.0f;
 
     public float ZoomLevel = 60.0f; 
 
     public float ZoomLevel1 = 40.0f;
 
     public float ZoomLevel2 = 20.0f;
 
     // Use this for initialization
 
     void Start () {
 
         zoomLevelSelected = 0;
 
         
 
     }
 
  
 
     // Update is called once per frame
 
     void Update () {
 
     
 
     if(Input.GetMouseButtonDown(1) || Input.GetKeyDown(KeyCode.Plus) || Input.GetKeyDown(KeyCode.Minus))
 
     {
 
         if(Input.GetKeyDown(KeyCode.Minus))
 
              zoomLevelSelected -= 1;
 
         else
 
              zoomLevelSelected += 1;
 
  
 
         float temp = camera.fieldOfView;
 
  
 
         if(zoomLevelSelected > 2)
 
             {
 
                 zoomLevelSelected = 0;
 
             }
 
         switch(zoomLevelSelected)
 
         {
 
                 
 
             case 0:
 
                 
 
                 camera.fieldOfView = ZoomLevel;
 
                 ZoomLevel = temp;
 
                 print (zoomLevelSelected);
 
                 break;
 
             case 1:
 
                 
 
                 camera.fieldOfView = ZoomLevel1;
 
                 ZoomLevel1 = temp;
 
                 print (zoomLevelSelected);
 
                 break;
 
             case 2:
 
                 
 
                 camera.fieldOfView = ZoomLevel2;
 
                 ZoomLevel2 = temp;
 
                 print (zoomLevelSelected);
 
                 break;
 
  
 
             
 
         }
 
         }
 
     
 
 }
 
 }
 
              Answer by ScroodgeM · Jul 30, 2012 at 08:23 PM
using UnityEngine; using System.Collections; public class CameraZoom : MonoBehaviour { public int zoomLevelSelected; public float altFieldOfView = 60.0f; public float ZoomLevel = 60.0f; public float ZoomLevel1 = 40.0f; public float ZoomLevel2 = 20.0f; // Use this for initialization void Start() { zoomLevelSelected = 0; }
 // Update is called once per frame
 void Update()
 {
     int zoomChange = 0;
     if (Input.GetAxis("Mouse ScrollWheel") < 0) { zoomChange = +1; } // back
     else if (Input.GetAxis("Mouse ScrollWheel") > 0) { zoomChange = -1; } // forward
     if (zoomChange!=0)
     {
         zoomLevelSelected = Mathf.Clamp(zoomLevelSelected + zoomChange, 0, 2);
         float temp = camera.fieldOfView;
         switch (zoomLevelSelected)
         {
             case 0:
                 camera.fieldOfView = ZoomLevel;
                 ZoomLevel = temp;
                 print(zoomLevelSelected);
                 break;
             case 1:
                 camera.fieldOfView = ZoomLevel1;
                 ZoomLevel1 = temp;
                 print(zoomLevelSelected);
                 break;
             case 2:
                 camera.fieldOfView = ZoomLevel2;
                 ZoomLevel2 = temp;
                 print(zoomLevelSelected);
                 break;
         }
     }
 }
 
               }
bonus: i like this one much ore 8) (just little improvements)
using UnityEngine;
using System.Collections;
public class CameraZoom : MonoBehaviour
{
    public int zoomLevelSelected = 0;
    public float[] ZoomLevels = new float[] { 60, 40, 20 };
    void Update()
    {
        int zoomChange = 0;
        if (Input.GetAxis("Mouse ScrollWheel") < 0) { zoomChange = +1; } // back
        else if (Input.GetAxis("Mouse ScrollWheel") > 0) { zoomChange = -1; } // forward
        if (zoomChange != 0)
        {
            zoomLevelSelected = Mathf.Clamp(zoomLevelSelected + zoomChange, 0, ZoomLevels.Length - 1);
            camera.fieldOfView = ZoomLevels[zoomLevelSelected];
        }
    }
} 
              Your answer
 
             Follow this Question
Related Questions
Scoping script /Camera zoom preferably C# 3 Answers
Need to limit zoom in/out of camera script 4 Answers
How to move camera on local z axis 2 Answers
Save picture from camera with zoom 0 Answers
How to add Pinch to Zoom? 0 Answers