実現したいこと
現在、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開発で一般的に使われている方法があれば教えていただきたいです。
補足
特になし
あなたの回答
tips
プレビュー