本日はUnityの小ネタ枠です。
Unityで文字数に合わせてスクロールできるScrollViewを作成する方法を記事にします。
ContentSizeFilter
ContentSizeFilterを利用するとTextオブジェクトの改行に合わせて高さのサイズを自動調整できます。
docs.unity3d.com
サンプルシーンの作成
Hierarchyで右クリックから[UI -> ScrollView]でScrollViewオブジェクトを追加します。
今回は文字列を立てスクロールするViewを作成します。
ScrollViewは縦方向をStretchで詰めたレイアウトで設定しました。
ScrollViewオブジェクトのInspectorビューを開き、ScrollRectコンポーネントの[Horizontal]のチェックボックスを外します。
これで横方向のスクロールが無効となります。
Contentオブジェクト配下に右クリックから[UI -> Text]でTextオブジェクトを追加します。
こちらもピボットの設定を変更し、上方向に詰めたレイアウトで配置します。
Textコンポーネントの[Overflow]を[Scroll Rect]に変更します。
これで文字数が横幅以上になった場合は自動で改行するようになります。
Content Size Fitterコンポーネントを追加し、文字数に応じてオブジェクトサイズが自動調整されるようにします。
[Vertical Fit]を[Preferred Size]に設定すると文字の改行に合わせて縦方向のサイズが自動調整されるようになります。
最後にContentオブジェクトが配下のTextコンポーネントに合わせてサイズが自動調整されるようにします。
こちらはVertical Layout GroupコンポーネントとContent Size Fitterコンポーネントを追加します。
こちらも[Vertical Fit]を[Preferred Size]に設定します。
これで配下のTextオブジェクトに合わせて縦方向のサイズが自動調整されるようになります。
動作確認
シーンを再生して動作を確認します。
Textコンポーネントに収まりきらない文字数の文字を入力すると、Contentオブジェクトの縦サイズが自動で大きくなり、縦スクロールが有効になります。
Unityで文字数に合わせてスクロールできるScrollViewを作成できました。