気ままなUnityエンジニアブログ

新米Unityエンジニアが送る解説アウトプットブログです。Twitter : @UjinUnity

MENU

【Unity】Textの文字列の長さに応じてオブジェクトのサイズを設定する

スポンサーリンク

UI設計で、表示する文字数に合わせて枠を拡張する時ってありませんか?

Unityでは簡単に実装できます。やってみましょう!

 

1.拡大するオブジェクトとテキストを用意しよう!

こちらがTextの文字数によって大きさを変更するオブジェクトです。

f:id:Wojtek:20190830010412p:plain

 

このTextに書き込まれた文字数に応じて、Imageのサイズが変更します。

f:id:Wojtek:20190830010419p:plain

2.ContentSizeFitter をアタッチしよう!

f:id:Wojtek:20190830010425p:plain

先ほどのTextにContent Size Fitterをアタッチしましょう。

そして「Horizontal Fit」を Prefered Size に変更します。

これをすることで、TextのWidthは書き込まれた文字数分の大きさになります。

3.スクリプト実装 

Unity側の実装は済んだのでスクリプトを作成しましょう。

f:id:Wojtek:20190830010337p:plain

this.imgSize には、初期のImageのサイズ情報を渡しておきます。

その後、「初回のサイズ情報 」+ 「Textの文字数 * 拡大するOffset値」を演算してImageオブジェクトのサイズに代入しましょう。

 

f:id:Wojtek:20190830010354p:plain

Unityを動かしてみましょう。

上記画像のように、文字数によってオブジェクトのサイズが変更しているのがわかります。

4.まとめ

ポイントは ContentSizeFitter と text.Lengthを使用することです。

文字数によって可変したいUI作成などで是非役立ててください。