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
0
Question by Saucy · May 28, 2013 at 09:28 AM · guiscreenresize

GUI Resize Mobile

Hello everyone,

I'm working on this particle animation app for android. Everything is good with it, but I've designed half of the gui (static text elements) just byc reating a gui textobject.

The rest is programmed in the ongui funtion like this:

 function OnGUI() {
   str = GUI.TextField (Rect (200, 170, 100, 25), str, 25);  
             
        if (GUI.Button(Rect(128,350,50,30),"GO!")){
             Debug.Log("Clicked the button with text");
             objToEdit.particleEmitter.maxEmission = theInt;
             Application.LoadLevel(1);
             }
 } 


This includes a button and a textfield, in the update function I converted the string into an Int.

I have my gameview set to 320 x 480, on my pc everything is fine, but when I open the app on my Galaxy S3, it screws with the design.

Is this because there's more pixels than selected? And if so, how do I resize it, or is there like a control that I need to enable?

I'm kinda lost here,

Thanks,

Jordi

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

3 Replies

· Add your reply
  • Sort: 
avatar image
1

Answer by SolidSnake · May 28, 2013 at 01:05 PM

The easiest (Lazy) way to do is by modifying the GUI matrix to "scale" e.g. if you put this line of code at the beginning of your GUI function(you might need to swap the numbers if needed):

 GUI.matrix = Matrix4x4.TRS(Vector3.zero, Quaternion.identity,new Vector3(Screen.width / 480.0f, Screen.height / 320.0f, 1)); 

However, this will scale according to the aspect ratio you specified so it might look stretched depending on different screen sizes.

The best way is to accommodate to different screen ratios by doing more clever position changes without affecting the aspect ratios for your gui element

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 TonyLi · May 28, 2013 at 04:10 PM

Some guys at Schell Games did a great presentation on this at Unite 11:

http://video.unity3d.com/video/3708530/unite-11-scaleable-game

Jump to 32:00 for their solution, which uses a ScriptableObject to hold a GUI layout. The nice thing about using ScriptableObjects is that you can play with the layout on the fly (WYSIWYG).

The layout is a collection of scaled rects for each control. Each scaled rect specifies an anchor (e.g., centered, bottom right, etc) and a proportional size (e.g., 20% of the screen in width X 10% of the screen in height). Their implementation also has min and max sizes to keep it looking good on extra small or extra large screens. This solution allows it to automatically scale the GUI to any screen resolution.

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 dylan92 · Sep 12, 2013 at 05:46 PM

There are lots of third party assets that can do this for you. I would recommend GUI Essentials since it will scale your GUI to any resolution but it also has the option of forcing a specific aspect ratio (and your GUI elements stay in the right place).

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

16 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

Related Questions

how to get Gui in OnGUI function to resize with the window? 1 Answer

Fix Resizing For GUI Label? 1 Answer

iphone screen too big? 0 Answers

One Last GUI Question 1 Answer

How Do I Center A GUI Label? 5 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