- Home /
Multiple Lines in a GUI.Label
Hello everyone! I need to display text in a gui.window , and each time size is different. I need some solution that acts like textarea but not editable..
I thought of splitting the text and using an another label for another line.. but there must be a better solution. THanks
Answer by Bunny83 · Jan 16, 2013 at 02:40 PM
a GUI.Label also wraps around any text displayed if the style that is used has wordWrap set to true.
Anyway, you can insert "manual" line breaks by inserting a newline character (`\n`) in the string. Example:
GUI.Label(new Rect(10,10,100,100),"This is the first line.\nThis is the second line.");
Hi Bunny -
do you know if it's possible to have this auto-fit the content height ?
The GUI controls never adapt their size to anything. You would have to use the GUILayout.Label ins$$anonymous$$d. Though of course it can only be used when you generally use the layout system. For example property drawers generally use a predefined size. That doesn't mean it's not possible to make it adapt to the content, but you have to do it manually.
The usual way when adapting the size manually is to use either GUIStyle.CalcHeight when a fix width is used or GUIStyle.CalcSize when the content can adapt in both directions. Note for property drawers you have to override the GetPropertyHeight method where you will calculate the whole height of your property. Of course it's important to use CalcHeight / CalcSize on the actual style that is used to draw the content. The style has settings like wordWrap, lightHeight, ...
Just for completeness, my I$$anonymous$$GUI crash course
thanks Bunny, i appreciate the reply.
GUILayout.Label is exactly what i needed!
I've been working in the EditorGUILayout paradigm, and didn't realize that GUILayout was a thing.
reading the crash-course now!
Answer by dbdenny · Mar 03, 2021 at 09:17 AM
GUIStyle textStyle = EditorStyles.label;
textStyle.wordWrap = true;
EditorGUI.LabelField(textRect, text, textStyle);
wordWrap of GUIStyle can work for LabelField as well.
Your answer
Follow this Question
Related Questions
Text that follows players and scale according to camera zoom 1 Answer
Text Mesh Pro: highlight all words in a link 0 Answers
if statement not working for user input 0 Answers
Why my text is invisible? 1 Answer
Canvas UI Priority layers 1 Answer