(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!


Unityで作ったPC(Windows&Mac)向けゲームでアスペクト比は固定したままウィンドウのサイズは可変出来るようにする【Unity】【Mac】【Windows】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 2021.3.4f1


はじめに

UnityでPC(Windows&Mac)向けにゲームを作った際にProject Settingsで

フルスクリーン固定にしたり、デフォルトの画面サイズを指定する事は出来ますが、


「ウィンドウサイズは可変出来るけどアスペクト比は固定」みたいな事は出来ません。

という事で今回はアス比は固定したままウィンドウのサイズは可変出来るようにする方法の紹介です!



アスペクト比は固定したままウィンドウのサイズは可変出来るようにする方法

設定だけでは実現出来ないので、以下のようなプログラムを使います。



使い方は簡単、上記のWindowSizeAdjusterを起動時等に生成し、

DontDestroyOnLoadで破棄されないようにするだけ。

#if UNITY_STANDALONE_WIN || UNITY_STANDALONE_OSX
//WindowSizeAdjusterの付いたオブジェクトを生成し、DontDestroyOnLoadでシーンを跨いでも破棄されないように
DontDestroyOnLoad(new GameObject("WindowSizeAdjuster", typeof(WindowSizeAdjuster)));
#endif


やってる事は単純で、一定時間ごとの画面サイズを確認してアスペクト比がおかしければ

Screen.SetResolutionを使って強制的に指定のアスペクト比にしています。

なお、SCREEN_RATEでアスペクト比の設定、UPDATE_SPANで更新の間隔を指定する事が出来ます。


アスペクト比を変更した時にユーザに通知を出すようにするとより親切かもしれません。