我有一个链接到公共TextMesh的3D文本。我希望我的公共字符串数组上的所有元素都显示在该3D文本上。当我尝试在for循环上运行它时,它会遍历我的数组中的所有字符串并打印最后一个位置。我需要它做的是在TextMesh中显示我的数组中的所有字符串。我试图用foreach循环来做,但结果相同。
这就是我的尝试:
for (int i = 0; i < myShoppingList.Length; i++){
listText.text = (myShoppingList[i] + "\n");
}
当我点击播放时,我只能在3DText中看到我的数组中的最后一个位置(虽然我知道它已经贯穿了所有这些)。这是我试过的foreach循环,并得到了相同的结果:
foreach (string item in myShoppingList) {
listText.text = (item + "\n");
}
基本上我需要的是一种方式来说明
listText.text = (myShoppingList[0] + "\n" + myShoppingList[1] + "\n" + myShoppingList[2] + etc.)
我可以这样做,但是如果我想在我的列表中添加一个项目(我的字符串数组),我将不得不进入这个代码并在此结束时添加另一个位置。所以也许有一种聪明的方法可以做到这一点,我没有看到!
有什么想法?谢谢你的时间!!!
答案 0 :(得分:0)
=
会将变量分配给新值。它正在用当前元素替换旧文本。
相反,您想要追加它。这是+
运营商。
您可以将新文本附加到listText.text
的现有内容,并将结果分配给listText.text
本身(listText.text = listText.text + moreString
),或者更方便地使用{{1 }}运算符,with是附加的简写,后跟分配给self(+=
)。
答案 1 :(得分:0)
或者,您可以使用string.Join()
方法而不是使用循环,该方法将使用IEnumerable或数组,并使用任何字符串连接所有项目(如您的情况下的换行符)。
例如:
listText.Text = string.Join("\n", myShoppingList);