2016-09-27 7 views
0

次のコードを使用して、テキストにあるテキストの脈拍を取得します。コードはゲームに表示されている行を返しません。私はインスペクタで入力した内容を返します。Unity3DのUIテキストの行を取得

myText = GetComponent<Text>(); 
string[] lines = myText.text.Split('\n'); 
try{print(lines[0]);}catch{} 
try{print(lines[1]);}catch{} 

//real output : 
//New Text 
//What I expect: 
//New 
//Text 

絵があります: Screen Shot

はどうやってゲームウィンドウ内にあるラインを得ることができますか?

これが私の最初の投稿ですので、

答えて

1

テキストはが原因Wrapに設定されているText部品のText.horizontalOverflow財産の二行としてを表示しているが、それはない、それは「新\ ntext型」のような2行に変更されたことを意味します。それはまだ「新しいテキスト」です。

enter image description here

あなたはWraphorizontalOverflowを設定した場合、Text意志のワードラップの水平境界に達したとき。あなたの場合、出力は2行になります。

Overflowに設定すると、テキストが水平境界を超えることがあります。テキストは、テキストの境界に影響されませんGameObject

+0

私はこれが起こる理由を探していません。私はゲームウィンドウに表示されている行にアクセスしたいです。実際には、ランタイムにテキストを生成してテキストに置き、行の順序を変更したいと考えています。たとえば、最初の行の行を最後の行に移動したいとします。 –

+0

'horizo​​ntalOverflow'を' Overflow'にセットして、あなたが望むことをしてください。 'myText.text ="実行時に生成されたテキスト "によって、テキストを元に戻すことができます。 – zwcloud

0

は問題はテキストオブジェクトのRectTransformの幅が小さすぎることで、同じテキストである任意のミスを言い訳、幅を広げたり、テキストのサイズを小さくします。

関連する問題