質問するログイン新規登録

Q&A

1回答

289閲覧

UnityでUIを比率を使って配置したい

VmCN

総合スコア1

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

UI Design

UI Design(UIデザイン)は、ユーザインターフェースをデザインすることです。ユーザーとシステムがスムーズにコミュニケーションを取るために、OSやアプリ画面などを使いやすくデザインすることを指します。

0グッド

0クリップ

投稿2026/09/28 23:41

0

0

実現したいこと

現在、UnityでUIの位置やサイズを数値で直接指定して配置しています。

これを、画面サイズが変わってもUIの配置を維持できるように、WPFのGridのような「画面に対する比率」でUIを配置したいです。

発生している問題・分からないこと

適切な方法が見つからないため、どのような方法があるのか教えていただきたいです。

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

実現方法の1つとしてLayout Groupがあります。
Grid Layout Groupの場合、Cell Sizeを数値で指定する必要があるため、比率でレイアウトしたい今回の用途にはあまり合っていません。
一方、Vertical Layout GroupやHorizontal Layout Groupを使うと、Child Controls SizeやChild Force Expandなどを利用して、WPFのGridに近い形でUIを配置できます。
ただ、この方法だとUIの構成が複雑になるほど、Layout Groupのネストが深くなってしまいます。

例えば、
・全画面
└ 余白を調整するVertical Layout Group
└ UIを配置する範囲を制限するVertical Layout Group
└ メイン部分とボタン群を分けるVertical Layout Group
└ ボタンを種類ごとに横並びにするHorizontal Layout Group

というように、UIの種類や配置方法に応じてLayout Groupを何階層も作る必要があります。
その結果、実際のUIとしては単純な構成でも、Hierarchy上ではLayout用のGameObjectが大量に増えてしまい、非常に見づらくなります。
Unityで、現在のように数値を直接指定する方法から、WPFのGridのように「比率でUIを配置する方法」に変更しつつ、Layout Groupのネストをできるだけ浅くする方法はありますか?

Layout Group以外の方法も含めて、実際のUnity UI開発で一般的に使われている方法があれば教えていただきたいです。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

guest

回答1件

0

RectTransformのAnchorを使う方法が一番シンプルだと思います。

Canvas ScalerをScale With Screen Sizeに設定し、各UI要素のRectTransformでAnchor MinとAnchor Maxを比率で指定することで、Layout Groupのネストなしに画面サイズに対応したレイアウトが実現できます。

例えば、Anchorを(0, 0)〜(0.5, 1)に設定すれば、左半分を占めるUI要素になります。この方法だとHierarchyがシンプルに保てます。

投稿2026/10/13 19:41

1winbizpk

総合スコア0

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.25%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問