59
71

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Unity】レイアウトをレスポンシブ対応させてアスペクト比解像度を変更してもUIが崩れないようにする方法

Last updated at Posted at 2022-02-04

Unityのレイアウトを、どの端末でもどのアスペクト比や解像度に変更してもUIが崩れないように、レスポンシブ対応させる方法についてです。

完成イメージ

環境

  • PC: MacBook Pro (Intel Core 2016)
  • OS: macOS Montery12.0.1
  • Unity Hub 3.0.1
  • Unity 2020.3.25f1

1. Canvasの設定

まず最初にCanvasの設定を行います。

Hierarchy から Canvas を選択して Inspector を確認します。

Canvas Scaler component の設定を以下のようにします。

UI Scale Mode > Scale With Screen Size
Reference Resolution > 想定している解像度(今回は800 × 600)
Screen Match Mode > Expand

Screen Shot 2022-02-04 at 18.45.26.png

CanvasScaler コンポーネントは Canvas 内の UI 要素の全体的なスケールとピクセル密度を制御するために使用されます。このスケーリングはフォントのサイズと画像のボーダーを含め、Canvas のすべてに影響を与えます。

各項目についての詳細は公式ドキュメントをご確認下さい。

2. 要素の作成

今回は以下のような物凄くシンプルなUIにいたします。

Screen Shot 2022-02-04 at 18.57.57.png

Hierarchyは以下の構成です。

Screen Shot 2022-02-04 at 19.23.28.png

3. 要素の設定

それぞの要素を設定していきます。

3-1. Panel要素の設定

最初は Panel 要素からです。

このPanelは、左寄せで親要素(Canvas)に対して上下ピッタリ です。

Panel の Inspector > Rect Transform > Anchor Presets をクリックします。

Screen Shot 2022-02-04 at 19.04.03.png

左下にある、「stretch / left」を選択します。

Screen Shot 2022-02-04 at 19.08.10.png

アンカーとは、 オブジェクトの持つ座標(x, y, z)に対しての基準点 となります。

つまり、アンカー = 座標の基準点 です。

アンカー(基準点)は、以下のようなマークのことです。

Screen Shot 2022-02-04 at 19.14.05.png

そして、Panelに設定したストレッチは、親Objectの端から配置するObjectの距離を Top:0, Bottom: 0 のように設定することができます。

個人的には、cssのpositionプロパティ の感覚に近かったです。

これらの仕組みについては以下の記事が大変わかりやすかったです。

今回 親要素(Canvas)に対して上下ピッタリ にしたいので、Top: 0, Bottom: 0 にします。

Screen Shot 2022-02-04 at 19.21.38.png

3-2. スクロールビューの設定

続いては、スクロールビューオブジェクトに対して設定を行います。

こちらは、親要素に対してど真ん中に配置させます。

Scroll View の Inspector > Rect Transform > Anchor Presets をクリックします。

真ん中にある、「middle / center」を選択します。

Screen Shot 2022-02-04 at 19.27.19.png

Positionは、全て0です。

Screen Shot 2022-02-04 at 19.28.49.png

これでレスポンシブ対応が完了しました。

動作確認

では、動作確認を行なってみます。

端末が縦向きでも横向きでも、どの状態でも関係なく配置したいと思った位置にUIが配置されています。

今回とても簡易的でしたが、これで レスポンシブ対応 が完了しました。

まとめ

  • Canvasの設定を行う
  • 要素の設定を行う
  • アンカーとは、座標(x, y, z)に対しての基準点

以上となります。
お読み頂き誠に有難うございました。

59
71
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
59
71

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?