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 Yokimato · Oct 21, 2012 at 10:20 PM · guiscreen

GUI Rect appears to give random values

I've got a `GUI.Window` set up with a static Rect declared at the top of my class, like such:

     private const int MAP_WINDOW_ID = 2;
     private const float MAP_WINDOW_HEIGHT = 590.0f;
     private const float MAP_WINDOW_WIDTH = 825.0f;
     private static Rect mapWindowRect = new Rect((Screen.width / 2) - (MAP_WINDOW_WIDTH / 2),(Screen.height / 2) - (MAP_WINDOW_HEIGHT / 2),MAP_WINDOW_WIDTH,MAP_WINDOW_HEIGHT);

I've been getting really random values for the calculated offset. I put a `Debug.Log(mapWindowRect)` on the `Start` method to verify and I'll get different values almost every time the game starts up. So, I'm obviously doing something wrong, where the height and width are maybe in the process of being set maybe?

Either way, here's my question:

Why is this happening, and how do I avoid it so I can center windows and other gui elements based on the user's screen rather than hard coded?

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
Best Answer

Answer by Yokimato · Oct 25, 2012 at 04:27 PM

Ok, I finally figured this out. Since the Rect was static and being initialized outside of the Awake or Start function, and because objects are not guaranteed to be created in the same order, the Rect appeared to give random values based upon what was created first--in this example, the Screen.Height & Screen.Width variables.

The fix: Making the Rect declaration equal null, and initializing the Rect to the calculated value in the Awake or Start function. Calculated fields involving constants only, should not be effected since order matters not.

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

9 People are following this question.

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

Related Questions

Rendering GUI.Buttons in the middle of the screen 5 Answers

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

One Last GUI Question 1 Answer

How Do I Center A GUI Label? 5 Answers

Displaying score on screen in specific place 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