【Unity】Textの文字列の長さに応じてオブジェクトのサイズを設定する
スポンサーリンク
UI設計で、表示する文字数に合わせて枠を拡張する時ってありませんか?
Unityでは簡単に実装できます。やってみましょう!
1.拡大するオブジェクトとテキストを用意しよう!
こちらがTextの文字数によって大きさを変更するオブジェクトです。
このTextに書き込まれた文字数に応じて、Imageのサイズが変更します。
2.ContentSizeFitter をアタッチしよう!
先ほどのTextにContent Size Fitterをアタッチしましょう。
そして「Horizontal Fit」を Prefered Size に変更します。
これをすることで、TextのWidthは書き込まれた文字数分の大きさになります。
3.スクリプト実装
Unity側の実装は済んだのでスクリプトを作成しましょう。
this.imgSize には、初期のImageのサイズ情報を渡しておきます。
その後、「初回のサイズ情報 」+ 「Textの文字数 * 拡大するOffset値」を演算してImageオブジェクトのサイズに代入しましょう。
Unityを動かしてみましょう。
上記画像のように、文字数によってオブジェクトのサイズが変更しているのがわかります。
4.まとめ
ポイントは ContentSizeFitter と text.Lengthを使用することです。
文字数によって可変したいUI作成などで是非役立ててください。