- Home /
Show List Content as GUI.Label on Update()
So I have this class:
class PlayerAction {
var actionName : String;
}
and I have a List that uses several items of this class. This list grows and shrinks throug the game and I want to display all the elements in the GUI for debug so I added this code :
for (var action : PlayerAction in playerInteractions.globalActions){
GUI.Label (Rect (400, 400, 200, 20), action.actionName);
}
But this makes the Labels overlap when being displayed. I also tried something like this:
var positionPadding = 0;
for (var action : PlayerAction in playerInteractions.globalActions){
GUI.Label (Rect (400, positionPadding , 200, 20), action.actionName);
positionPadding += 20;
}
But then the value keeps adding without stopping since its running in OnGUI()...
So my question is, how can I display the contents of a list on the GUI?
UPDATE:
So this is the cleanest solution I found so far (by multiplying the iteration variable with the position that gets added outside), still wondering if there is a better way to do it:
for (var i = 0; i < globalActions.Count; i++){
GUI.Label (Rect (valuePadding, positionYTotal + i * 15, 200, 20), i+1 + ". " + globalActions[i].actionName + selectedObject);
}
Answer by Tomer-Barkan · Nov 28, 2013 at 07:01 AM
Hi,
Two suggestions.
1- It might be simpler to use the debug log rather than GUI. If you don't want too much logging, you could only log when you press the key "d" for example.
2- If you prefer GUI, place a GUIText component in the scene where you want the text to appear, and set its text as follows:
public GUIText textComponent;
public void Update() {
string txt = "";
for (var action : PlayerAction in playerInteractions.globalActions){
txt += action.actionName + "\n";
}
textComponent.text = txt;
}
Thanks, but not really the answer I'm looking for. I found a solution in the meantime, updating the question with it.
Your answer
![](https://koobas.hobune.stream/wayback/20220613123001im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
A node in a childnode? 1 Answer
Displaying varying text 1 Answer
GUI Overlay Display 0 Answers
How to dynamically create buttons based on contents of a list using C#? 1 Answer
Why does the font selected for my GUI Skin not display correctly? 1 Answer