本日は Unity の小ネタ枠です。
Textの文字列長や改行に合わせてオブジェクトサイズを自動調整する方法を記事にします。
ContentSizeFilter
ContentSizeFilterを利用して、Text オブジェクトの改行に合わせて高さのサイズを自動調整します。
docs.unity3d.com
なお Text コンポーネントの[HorizontalOverflow]を[Wrap]に設定している場合、文字列が横幅を超えると文言の区切りで自動改行を行ってくれます。
docs.unity3d.com
ContentSizeFilterの設定
サイズを自動調整する Text オブジェクトの RectTransform について Stretch の設定であればこれを固定長に変更しておきます。
Stretch の場合、ContentSizeFilter によるサイズの自動調整が行われません。
Text オブジェクトに ContentSizeFilter を設定します。
高さのサイズを自動調整するため、[VerticalFit]を[PrefernedSize]に変更します。
これでテキストの改行に合わせて Text オブジェクトの高さが変更されます。
Buttonオブジェクトの自動調整
このままだと Text オブジェクトのサイズが調整されるのみで、Button オブジェクトのサイズが変わりません。
Button オブジェクトは前回の Content オブジェクトと同様に ContentSizeFilterとVerticalLayoutGroup を設定して高さが自動調整されるように設定します。
これで文字列の改行に合わせてサイズが自動調整されるボタンが作成できました。