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
1
Question by weitay · May 22, 2014 at 09:48 AM · guilayoutwrapping

Getting GUILayout.BeginHorizontal() to wrap?

Hi,

I have a couple of buttons organized with begin horizontal but the problem is how do you get them to wrap around and start on the next line once they have hit the max width of declared in GUILayout.BeginArea?

The code below I have is my attempt at it but I get ArgumentException:GUILayout:Mismatched LayoutGroup.Repaint

But I dont think this is a good way about it anyway so does anyone have any suggestions? Really stumped...

void OnGUI() {

     float width = 200;

     // Wrap everything in the designated GUI Area
     GUILayout.BeginArea(new Rect(Screen.width / 4 - 50, Screen.height - 300, width, 700));

     // Begin the singular Vertical Group
     GUILayout.BeginVertical();

     GUILayout.Label("REPORT HEADER");

     float w = 0;
     GUILayout.BeginHorizontal();
     for (int i = 0; i < workSearchRef.workWordArray.Length; i++)
     {
         string word = workSearchRef.workWordArray[i].word;
         
         if (workSearchRef.workWordArray[i].isTarget)
         {
             if (GUILayout.Button(" " + word, Highlight))
             {
                 print("button pressed");
             }
         }
         else
         { 
             GUILayout.Button(" " + word, Normal);
         }

         Rect rect = GUILayoutUtility.GetLastRect();
         w += rect.width;
         if (w >= width)
         {
             GUILayout.EndHorizontal();
             GUILayout.BeginHorizontal();

             w = 0;
         }
         
     }
     GUILayout.EndHorizontal();

     if (GUILayout.Button("Close"))
     {
         chairRef.closeWork();
     }

     GUILayout.EndVertical();
     GUILayout.EndArea();
 }

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
1

Answer by Dunkelheit · Jun 07, 2016 at 03:44 AM

Try to use EditorGUIUtility.currentViewWidth to get the with of inspector zone and calculate how many buttons (if you know each button's size) will be supported each row.

Make sure you're using it inside an OnInspectorGUI() or some else wrapped method called inside it.

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

21 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

Related Questions

Aligning an overlay to existing GUI elements 0 Answers

Open gui if player clicks on button 2 Answers

Help w/GUILayout Please 1 Answer

Guilayout problems with image resize 0 Answers

Help with GUILayout and tooltip(C#) 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