3テラバイト

プログラム関連備忘録サイト。主にゲーム。

Unity

UnityでuGUIのButtonサイズを子のTextのサイズに自動で合わせる

投稿日:

こんにちは、今日はUnityのuGUIでButtonのサイズを、子オブジェクトのTextのサイズに合わせて変更する方法についてまとめていきます。

確認環境

Version 2018.4.15f1

実装方法

この記事ではVertical Layout Group、Horizontal Layout Group、Grid Layout GroupのLayout Group系のコンポーネントのいずれかと、Layout Elementコンポーネントを用います。

Vertical Layout Group – https://docs.unity3d.com/ja/2018.4/Manual/script-VerticalLayoutGroup.html

Horizontal Layout Group – https://docs.unity3d.com/ja/2018.4/Manual/script-HorizontalLayoutGroup.html

Grid Layout Group – https://docs.unity3d.com/ja/2018.4/Manual/script-GridLayoutGroup.html

Layout Element – https://docs.unity3d.com/ja/2018.4/Manual/script-LayoutElement.html

実装手順

Buttonオブジェクトの追加

新規プロジェクトでGameObject > UI > ButtonからuGUIのButtonオブジェクトを追加します。
これで自動的にButtonオブジェクトの他に、親にCanvasと、子にTextオブジェクトが追加されます。

コンポーネントの追加

この内、CanvasとButtonにVertical Layout Groupコンポーネントを追加、Child Force ExpandのチェックをWidth, Height共に外し、Child Controls SizeのチェックをWidth, Height共に入れます。
これで上の画像のようにTextのサイズに合わせてButtonのサイズが変更され、位置もCanvasの左上に移動するかと思います。

コンポーネント設定値の変更

Buttonの配置レイアウトはCanvasに付与したVertical Layout GroupコンポーネントのChild Alignmentで、ButtonのサイズはTextのサイズに合わせて変更する他、ButtonのVertical Layout GroupコンポーネントのPaddingでも上下左右にパディングを追加できます。

また、TextオブジェクトにLayout Elementコンポーネントを追加し、その設定値からも最低サイズ等の設定が行えます。

-Unity


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

関連記事

no image

簡易逆ジオコーディングサービスをUnityで使う

農研機構が提供しているWebサービス、簡易逆ジオコーディングサービスをUnityから使用してみます。https://aginfo.cgk.affrc.go.jp/rgeocode/index.html …

no image

Unity – コルーチンの使い方

こんにちは、今日はUnityでコルーチンの使い方についてまとめていきます。 コルーチンは関数の実行途中で中断し、指定時間経過後等の条件で再開できる関数のようなものです。 詳細については公式マニュアルの …

no image

Unityのメモリ使用量をスクリプトで取得する

こんにちは、今日はUnityのメモリ使用量をスクリプトで取得する方法についてまとめていきます。 確認環境 Unity 2018.4.15f1 メモリ使用量取得 Unityがシステムから予約しているメモ …

no image

Unity – キー入力を取得する方法まとめ

こんにちは、今日はUnityでキー入力を取得する方法についてまとめていきます。 確認環境 Unity 2018.4.15f1 キー入力の取得 https://docs.unity3d.com/ja/c …

no image

UnityのManaged Memoryサイズをスクリプトから取得する

こんにちは、今日はUnityのManaged Memoryサイズをスクリプトから取得する方法についてまとめていきます。 Profiler.GetMonoUsedSizeLong() Profiler. …