- Home /
Maximum length of text in a GUILayout.Label?
I am trying to display a large amount of text in a scrollable area, but there seems to be a limit on how much a GUILayout.Label can show - not all of the string that I pass to it is shown. Is there a maximum length to the text that can be displayed? Can I increase it or is there some other way to show more text in a scrollview?
Here's my code:
GUIStyle g = new GUIStyle (); g.normal.background = bkg; scrollPosition = GUILayout.BeginScrollView (scrollPosition,g, GUILayout.Width (770), GUILayout.Height (300));
g = new GUIStyle();
g.normal.textColor = new Color(255,0,0);
GUILayout.Label (staticScript.log,g, GUILayout.ExpandHeight (true), GUILayout.MaxHeight(float.MaxValue), GUILayout.ExpandWidth(false),GUILayout.Width (730));
GUILayout.EndScrollView ();</code></pre>
When I set a breakpoint and check the value of staticScript.log, I see the whole text, but only a part is displayed.
Hi,
Well if you use float.$$anonymous$$axValue for the height and your text is longer than that I would say you can't display more.
You have to make a buffer to read your file and display it,then you could implement a page system (button next and previous for example) to load the new buffer.
regards
Answer by createdbyx · Nov 15, 2015 at 05:52 AM
I had same issue I created a hack using string.split and drawing labels for each line
var stringValue = SomeStringValue.Split(new[] { "\r\n" }, StringSplitOptions.None);
foreach (var value in stringValue)
{
GUILayout.Label(value);
}
This also gives you the ability to optimize the draw and layout count if you use this technique in combination with a scroll view where you only draw labels that would be in current scroll view instead of drawing the entire array of lines.
Your answer
Follow this Question
Related Questions
4.6 GUI Button inside a scrolling Text Box 0 Answers
Finding the height of a text asset. 1 Answer
Editing certain words in a single NGUI Text Box 0 Answers
Fix Blurry UI text? 10 Answers
How long is a string? 3 Answers