所以我正在编程一名生物群,并希望将所有分数列在GUI中。我有一个带有所有分数的string[]
,所以我使用了
foreach(string score in scores) {
y = y + 60f;
GUI.Label(new Rect(0, y, 100, 20), score);
}
,但是现在每个gui.label都被移动,而不仅仅是新的。因此,如果以第三分为例,每个对象为180f。
使用Text
组件在屏幕上显示文本。避免使用GUI.Label
或OnGUI
功能的任何内容。您可以在此处了解有关Unity的UI的更多信息。
要回答您的问题,您可以在Horizontal Layout Group
和Layout Element
组件的帮助下使用 Text
组件在字符串数组中显示每个值。您可以通过谷歌搜索它们如何工作。
或
您还可以在" rn
"的组合中使用 Text
组件,然后将所有字符串显示为一个Text
组件。" rn
"用于将每个文本移至新行。
public Text textScore;
public string[] scores;
void Start()
{
textScore.horizontalOverflow = HorizontalWrapMode.Overflow;
textScore.verticalOverflow = VerticalWrapMode.Overflow;
foreach (string score in scores)
{
//Add new Score
textScore.text = textScore.text + score;
//Add new Line
textScore.text = textScore.text + "rn";
//OR (Do both one one line)
//textScore.text = textScore.text + score + "rn";
}
}
如果您想要每个文本之间的更多空间,则可以在每个循环中添加尽可能多的" rn
"。例如,textScore.text = textScore.text + score + "rnrnrnrnrnrn";
。