2017-10-20 3 views
0

私は、公開TextMeshにリンクされた3Dテキストを持っています。パブリック文字列配列のすべての要素をその3Dテキストに表示する必要があります。 forループで実行しようとすると、配列内のすべての文字列が実行され、最後の位置が出力されます。私がする必要があるのは、そのTextMeshに配列内のすべての文字列を表示することです。私はforeachループでもやってみましたが、同じ結果です。配列のすべての位置をUnityのTextMeshでどのように印刷できますか?

これは私が試したものです:

for (int i = 0; i < myShoppingList.Length; i++){ 
     listText.text = (myShoppingList[i] + "\n"); 
    } 

私はプレーを打つときは(私はそれがそれらのすべてを介して実行している知っているが)、私は3DTextで私の配列の最後の位置を確認することができます。これは私が試したとして同じ結果を得たforeachループである:私は必要なの、それは私がそのようにそれを行うことができ

listText.text = (myShoppingList[0] + "\n" + myShoppingList[1] + "\n" + myShoppingList[2] + etc.) 

言うことのための方法であるが、その後場合は基本的に

foreach (string item in myShoppingList) { 
     listText.text = (item + "\n"); 
    } 

I私のリスト(私の文字列配列)に項目を追加したい私はこのコードに入り、そして最後に別の位置を追加する必要があります。だから、私が見ていない、これを行うためのスマートな方法があります!

どのような考えですか?あなたの時間をありがとう!

+2

'='が最後の文字列値 – Programmer

+0

を変更しているので、 '+ = 'と' = '置き換えありがとうございました!!!!それは完璧に働いた – javiermdvc

答えて

0

=は、変数に新しい値を割り当てます。これは、古いテキストを現在の要素に置き換えています。

代わりに追加します。それは+演算子です。自己に割り当てることによって、その後追加の省略形があると

あなたは、+=演算子を使用し、より便利に、listText.textの既存の内容に新しいテキストを追加し、listText.text自体(listText.text = listText.text + moreString)にその結果を割り当てたりすることができます(listText.text += moreString)。

0

また、ループを使用する代わりに、string.Join()メソッドを使用してIEnumerableまたは配列を取得し、すべての項目を任意の文字列で結合することができます(あなたの場合は改行文字のようになります)。例えば

listText.Text = string.Join("\n", myShoppingList); 
関連する問題