三流豆腐。

三流のゲームプログラマ。C/C++/C#/Objective-C/python/技術向上を目指します。

【Unity】Textから文字列を取得するには?【uGUI】

Textから文字列を取得するには?

画面上に文字を表示する際よくお世話になるText。

スクリプトからTextの文字列を取り出す際に躓いた点をご紹介します。

Unityバージョン:Unity 2018.3.13f1

 

問題

・Text内のNew Textの文字列が正常に取得できない

 

Text内にあるNew Textという文字列を表示Logに表示したいと思います。

f:id:tofu_doon:20190503115115p:plain

 

以下のコードで正常にでるかなと思ったのですが……。

f:id:tofu_doon:20190503115219p:plain

 

ダメでした。

よく考えてみたらわかることですが、Textのコンポーネントの中にあるTextの文字列を表示したいので、きちんとアクセスしていませんでしたね。

f:id:tofu_doon:20190503115434p:plain

 

解決

以下のコードできちんとNew Textの文字列が表示されました。

変数名にコンポーネント名を入れることが多いので、Text.textというようにちょっと分かり辛くなってしまいますね。

変数名は一度考え直すほうが良いかもしれません。

f:id:tofu_doon:20190503115725p:plain

f:id:tofu_doon:20190503115740p:plain


 

まとめ

・Text.ToString()ではコンポーネントの名前が表示されてしまう

・Text内の文字列を表示するには、Textコンポーネント内のtextにアクセスしよう

コンポーネント名が取得したい機会はあまりないと思いますが、取得した際コンポーネント名の後ろに(UnityEngine.UI.Text)と付いているので、純粋にTextで判定や比較を行う際は一工夫必要かもしれませんね。