Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 /
  • Help Room /
avatar image
0
Question by EtherialBlue · Feb 16, 2020 at 02:23 AM · zoom

How to zoom in and zoom out UI objects inside canvas?

I'm trying to implement zooming in and zooming out for my view, but changing the Camera component Size doesn't give the impression of zooming in and out of objects inside a Canvas. Only objects not belonging to a canvas, like background, give the impression of zoom in and zoom out.

Here is a video of what is happening when I change the size https://imgur.com/a/iwhSg72

From what can be seen on the Hierarchy, I have on my scene an image named Card and another game object (Canvas) that has the very same image inside. The camera is set to Ortographic and when I change the Size, it does give the impression that Card and DarkBackground are zooming in and zooming out, but the image inside the Canvas stays the same size.

Is there anyway to achieve a zoom in and zoom out for a scene in which objects inside Canvas (or canvas itself) also zooms in and out?

Edit: The image inside the canvas is a UI object whereas the one outside is a Sprite. I noticed UI objects don't zoom in or out by changing the size of the camera. The canvas however will have other UI elements which I would need to zoom in and out. Is there any way to zoom UI elements?



Edit: Changing the Render Mode of the Canvas to World Space makes the canvas and its UI elements zoomable when changing the Camera Size. But I wonder if there is an alternative.

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

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by shubhoum · Jan 20, 2021 at 10:00 AM

@EtherialBlue

Attach this script in the canvas UI objects you want to zoom in and out "Works only for Canvas objects"

 using UnityEngine;
 using UnityEngine.EventSystems;
 
 public class ObjectScalling : MonoBehaviour, IPointerDownHandler, IPointerUpHandler {
     private bool _isDragging;
     private float _currentScale;
     public float minScale, maxScale; // minScale and maxScale are limits of scaling
     private float _temp;
     private float _scalingRate = 2;
 
     private void Start() {
         _currentScale = transform.localScale.x;
     }
 
     public void OnPointerDown(PointerEventData eventData) {
         if (Input.touchCount == 1) {
             _isDragging = true;
         }
     }
 
 
     public void OnPointerUp(PointerEventData eventData) {
         _isDragging = false;
     }
 
 
     private void Update() {
         if (_isDragging)
             if (Input.touchCount == 2) {
                 transform.localScale = new Vector2(_currentScale, _currentScale);
                 float distance = Vector3.Distance(Input.GetTouch(0).position, Input.GetTouch(1).position);
                 if (_temp > distance) {
                     if (_currentScale < minScale)
                         return;
                     _currentScale -= (Time.deltaTime) * _scalingRate;
                 }
 
                 else if (_temp < distance) {
                     if (_currentScale > maxScale)
                         return;
                     _currentScale += (Time.deltaTime) * _scalingRate;
                 }
 
                 _temp = distance;
             }
     }
 }









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

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

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

Related Questions

Clamping camera forward and backward vector 0 Answers

Simple FPS camera zoom not working as intended because of the boolean. 1 Answer

How to move a camera smoothly to a fixed position and back using C#? 0 Answers

Unity Smooth Move and Zoom UI on Canvas for Android/IOS 0 Answers

How can I add On-Screen Buttons to make the Ball move? 0 Answers


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