uGUIで設置したUIが端末の解像度によってずれる問題

はじめに

ゆう@あんのうんです。

Unityで開発していてUI周りでお世話になることになる、uGUIですが、

スマフォアプリなどで端末の解像度にかなり左右される時だと、座標連れが頻繁に発生します。

今回は、その対処法の1つをご紹介します。

対処法

まずは、CanvasにUIを突っ込みます。 (以下はあくまで例です)

03.png

ここで、Canvasの設定を以下の様に設定します。

04.png

Ui Scale Modeを Scale With Screen Size にします。

次に Reference Resolutionを現在対象としている解像度に合わせましょう。

私の場合は、320 x 568でiPhone5, 5S用に設定しています。

次に、Screen Match Modeですが、以下の様に意味合いが分かれます。

項目 意味合い
Match Width Or Height 幅か高さを基準にして拡大、縮小する。これを選択した場合、下部にMatch項目が出現して、どちらに比重を合わせるかを指定できる
Expand 解像度が大きい場合、画面の領域を広げる。小さな解像度の場合はそのままの大きさ。
Shrink 実際の解像度におさまるように、縦横の比率を保ったまま縮小する。

Sampleでは縦に持つゲームにしようとしているので、「Match Width Or Height」に設定し、MatchをHeightに大きく比重を置くようにしています。

上記で解像度が変わってもある程度表示崩れが起きなくなります。 表示崩れが起きた場合は、Matchの値を調整してみると良いかもしれません。