はじめに
Unityにおいて、どのようなデバイスでも画面サイズ(比率)を安定化させる方法を調査したので、私の備忘録も兼ねて記事を書きました。
最近は、なにかとマルチプラットフォームな展開を求められる傾向が強いように感じるので、この辺りの設定を見直しておくのも大事だと考えています。
なお、今回利用したバージョンは6000.3.9f1です。
本題
こちら、私が制作しているゲームの画面です。
見ての通り、アスペクト比はFull HD(1920×1080)です。最近のゲームは、大体フルHDなので、特に問題はないでしょう。
さて、早速これをビルドしていくわけですが、ここで、project Settingを確認します。
Project Setting -> Player -> Resolution and Presentation と移動していき、実際に設定を見ると、初期設定だとこのようになっています。
今回の設定で関係する項目をピックアップすると、
・Fullscreen Mode
・Default Is Native Resolution
・Resizable Window
です。
Fullscreen Modeは文字通り、フルスクリーンにするかどうかの設定です。そして、これを「Windowed」に切り替えてしまえば、一応目的は達成できます。Windowedにすれば、デバイスの画面サイズによらず、フルHDでビルドできます。
しかし、今回は、「フルスクリーン」の上で、安定してフルHD(16:9な画面)にしたい、という狙いがあります。
一部のノートパソコンやデスクトップパソコンは、画面の大きさがやや縦長であったり、横に広かったりするものがあります。有名どころだと、Let'sNoteとかですね。
特に設定を変更せずに、ビルドしたゲームを遊ぼうとすると、こんな感じになってしまいます。
縦に引き伸ばされていますね。UIについては、アンカーを使うとか、UIツールキットを使うとかで影響を緩和できますが、Imageやゲームそのものについては困ることになります。
そこで、Playerの設定を変更していくワケですね。
まず、Resizable Windowですが、これはオンにしましょう。これをオンにすることで、画面の大きさを一旦認識してくれます。
次に、Default Is Native Resolutionですが、これはオフにします。この項目は、デバイスに合わせて、画質を調整してくれる優れものなんですが、これが悪さをしています。これをオフにすると、Default Screen Width(Height)が出てくるので、ここを、1920×1080等に調整しましょう。
これで設定は完璧です。ビルドして遊んでみると、
うまくできました。
おわりに
今回は、画面サイズやアスペクト比の設定についての記事を書きました。少しでも参考になれば幸いです。




