はじめに
ゆう@あんのうんです。
Unityで開発していてUI周りでお世話になることになる、uGUIですが、
スマフォアプリなどで端末の解像度にかなり左右される時だと、座標連れが頻繁に発生します。
今回は、その対処法の1つをご紹介します。
対処法
まずは、CanvasにUIを突っ込みます。 (以下はあくまで例です)
ここで、Canvasの設定を以下の様に設定します。
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の値を調整してみると良いかもしれません。