Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • 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
8

Answer by _Petroz · Jun 22, 2010 at 11:20 AM

function Update () { const int orthographicSizeMin = 1; const int orthographicSizeMax = 6;

 if (Input.GetAxis("Mouse ScrollWheel") &gt; 0) // forward
 {
     Camera.main.orthographicSize++;
 }
 if (Input.GetAxis("Mouse ScrollWheel") &lt; 0) // back
 {
     Camera.main.orthographicSize--;
 }

 Camera.main.orthographicSize = Mathf.Clamp(Camera.main.orthographicSize, orthographicSizeMin, orthographicSizeMax );

}

Comment
Add comment · Show 2 · 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 Mike 3 · Jun 22, 2010 at 11:26 AM 0
Share

Talking of which, theres some weird bugs using consts inside functions - you may want to watch out for using them for anything maths based

avatar image GBCFraser · Apr 19, 2013 at 07:17 PM 0
Share

Thank you for this tip, I was working on a RTS Camera Controller and this helped. I found a way to smoothly interpolate the camera's zoom.

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 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
avatar image
0

Answer by sotirosn · Nov 03, 2013 at 09:50 PM

you can use this expression to get back -1, 0, or 1.

(Input.GetAxis("MouseWheel") != 0 ? Mathf.Sign(Input.GetAxis("MouseWheel")) : 0)

and then just do it all with one line like,

Camera.main.orthographicSize = Mathf.Clamp(Camera.main.orthographicSize + (Input.GetAxis("MouseWheel) != 0 ? Mathf.Sign(Input.GetAxis("MouseWheel")) : 0), zoomMin, zoomMax);

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 sotirosn · Nov 03, 2013 at 09:58 PM 0
Share

Actually I am having a problem where I only want to use mouse input if the user holds down the shift key. But it seems the mouse wheel does create input if shift is held down. Does anyone else have this problem?

avatar image Yohann1172 · Mar 05, 2014 at 10:49 PM 0
Share

@sotirosn, I'm having the same issue w Shift + Scroll not working...did you find a solution?

avatar image millershaski · Mar 05, 2014 at 11:05 PM 0
Share

Couldn't you just do

 if(Input.Get$$anonymous$$eyDown($$anonymous$$eyCode.LeftShift))
     Do$$anonymous$$ouseWheelStuff();
 
avatar image Yohann1172 · Mar 05, 2014 at 11:19 PM 0
Share

millershaski, that unfortunately doesn't work

avatar image sotirosn · Mar 18, 2014 at 10:51 AM 0
Share

I think the problem is with Windows, for example in this browser if I hold down shift my mouse wheel does not work. So no I have not found a solution.

Show more comments
  • 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.

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 can i mimic the "Frame Selected [F]" camera move? (Zoom Extents, Zoom to Fit) 2 Answers

How to make zoom in and zoom out with a slider on minimap? 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