• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
9
Question by azmundai · Jun 22, 2010 at 07:18 AM · zoomscroll-wheel

Mouse Wheel Zoom

Hey all, I have a ortho camera, I can't figure out how to make it so the mouse wheel will scroll in or out. I need the script to change main.camera.orthographicSize in increments of 1. Max 6 Min 1.

If you provide a script can you give me a brief explanation of how it works, specifically how I code for zoom in vs zoom out?

Thanks! Joe

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

7 Replies

· Add your reply
  • Sort: 
avatar image
30
Best Answer

Answer by AnaRhisT · Jun 22, 2010 at 08:58 AM

function Update () { if (Input.GetAxis("Mouse ScrollWheel") < 0) // back { Camera.main.orthographicSize = Mathf.Max(Camera.main.orthographicSize-1, 1);

     }
     if (Input.GetAxis("Mouse ScrollWheel") &gt; 0) // forward
     {
         Camera.main.orthographicSize = Mathf.Min(Camera.main.orthographicSize-1, 6);
     }

}

Comment
Add comment · Show 6 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image azmundai · Jun 22, 2010 at 10:38 AM 0
Share

Not exactly what I wanted, but close enough! I added if < 5 then increment, if > 1 decrement and changed it to go 1 at a time ins$$anonymous$$d of random. I just wasn't sure how to use the mouse scrollwheel deal, but it makes more sense now!

avatar image Mike 3 · Jun 22, 2010 at 11:08 AM 0
Share

Edited the code to make more sense to anyone reading it later

avatar image AnaRhisT · Jun 22, 2010 at 11:08 AM 0
Share

I'm glad my script made more sense, Have a nice day!

avatar image HarryGodden · Oct 01, 2013 at 05:44 AM 0
Share

simply excellent! This even worked in C#! Thanks.

-Harry

avatar image TheFishInABowl · Mar 01, 2015 at 12:34 AM 0
Share

I have problems with the & g t ; it gives me complier error and i dont really know what its good for?

Show more comments
avatar image
0

Answer by NathoSteveo · Apr 09, 2020 at 09:07 AM

bad examples

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image
1

Answer by Awanonimik · Aug 10, 2017 at 01:05 AM

Comprehensive code, fully usable without editing:

 public class ExampleClass : MonoBehaviour {
     public float scrollDistanceIncrement;
 
     // Optional |: public float maxScroll;
 
     void Update () {
         
         // Get mouse scrollwheel forwards || check if main camera is too small, prevents a couple errors
         if (Input.GetAxis ("Mouse ScrollWheel") > 0 && Camera.main.orthographicSize > 1) {
             // Scroll camera inwards
             Camera.main.orthographicSize = Camera.main.orthographicSize -= scrollDistanceIncrement;//Mathf.Max (Camera.main.orthographicSize - 1, 1);
         }
 
         // Get mouse scrollwheel backwards || optional code
         if (Input.GetAxis ("Mouse ScrollWheel") < 0 /*Optional |: && Camera.main.orthographicSize < maxScroll :| */) {
             // Scrolling Backwards
             Camera.main.orthographicSize = Camera.main.orthographicSize += scrollDistanceIncrement;//Mathf.Min (Camera.main.orthographicSize - 1, 1);
         }
 
     }
 
     /* Legend:
      * |: <code> :| is code
      * || are just seperators
      */
 }

Upvote if this was helpful.

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image
0

Answer by Rispetto · Aug 12, 2016 at 02:38 PM

I used some of the code in this thread and wrote my own using c#. When you run the script it will set the camera to the current cameraCurrentZoom, then recognise when the player uses the scroll wheel and manipulate the current zoom level to that number. This is, of course, designed for a 2D Orthographic camera.

using UnityEngine; using System.Collections;

public class CameraManager : MonoBehaviour {

 public int cameraCurrentZoom = 8;
 public int cameraZoomMax = 20;
 public int cameraZoomMin = 5;

 void Start ()
 {
     Camera.main.orthographicSize = cameraCurrentZoom;
 }

 void Update () {

     if (Input.GetAxis("Mouse ScrollWheel") < 0) // back
     {
         if (cameraCurrentZoom < cameraZoomMax)
         {
             cameraCurrentZoom += 1;
             Camera.main.orthographicSize = Mathf.Max(Camera.main.orthographicSize + 1);
         } 
     }

     if (Input.GetAxis("Mouse ScrollWheel") > 0) // forward
     {
         if (cameraCurrentZoom > cameraZoomMin)
         {
             cameraCurrentZoom -= 1;
             Camera.main.orthographicSize = Mathf.Min(Camera.main.orthographicSize - 1);
         }   
     }



     }
 }
Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image
0

Answer by Semyonys · May 31, 2015 at 12:27 PM

i try to do some code like this:

      if (Input.GetAxis("Mouse ScrollWheel") > 0)
                 {
                     camera.orthographicSize--;
                 }
     
                 if (Input.GetAxis("Mouse ScrollWheel") < 0)
                 {
                     camera.orthographicSize++;
                 }


But unity act on this only when i am holding CTRL.

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
  • 1
  • 2
  • ›

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

11 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Implementing the ScrollWheel: 4 Answers

Mouse scroll wheel zoom is messed up 1 Answer

Could someone write me a 'zoom' script? 3 Answers

How to make a regenerating healthbar 1 Answer

Text appear on screen when I stand over object. 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges