MRが楽しい

MRやVRについて学習したことを書き残す

Textの文字列長や改行に合わせてオブジェクトサイズを自動調整する

本日は Unity の小ネタ枠です。
Textの文字列長や改行に合わせてオブジェクトサイズを自動調整する方法を記事にします。
f:id:bluebirdofoz:20220208231302j:plain

前提条件

前回記事の続きです。
bluebirdofoz.hatenablog.com

前回記事のButtonオブジェクトのTextの文言を追加したときに自動でサイズが調整されるようにしてみます。
f:id:bluebirdofoz:20220208231320j:plain

ContentSizeFilter

ContentSizeFilterを利用して、Text オブジェクトの改行に合わせて高さのサイズを自動調整します。
docs.unity3d.com

なお Text コンポーネントの[HorizontalOverflow]を[Wrap]に設定している場合、文字列が横幅を超えると文言の区切りで自動改行を行ってくれます。
docs.unity3d.com

ContentSizeFilterの設定

サイズを自動調整する Text オブジェクトの RectTransform について Stretch の設定であればこれを固定長に変更しておきます。
Stretch の場合、ContentSizeFilter によるサイズの自動調整が行われません。
f:id:bluebirdofoz:20220208231351j:plain

Text オブジェクトに ContentSizeFilter を設定します。
高さのサイズを自動調整するため、[VerticalFit]を[PrefernedSize]に変更します。
f:id:bluebirdofoz:20220208231453j:plain

これでテキストの改行に合わせて Text オブジェクトの高さが変更されます。
f:id:bluebirdofoz:20220208231504j:plain

Buttonオブジェクトの自動調整

このままだと Text オブジェクトのサイズが調整されるのみで、Button オブジェクトのサイズが変わりません。
Button オブジェクトは前回の Content オブジェクトと同様に ContentSizeFilterとVerticalLayoutGroup を設定して高さが自動調整されるように設定します。
f:id:bluebirdofoz:20220208231515j:plain

これで文字列の改行に合わせてサイズが自動調整されるボタンが作成できました。
f:id:bluebirdofoz:20220208231525j:plain