ひとりでのアプリ開発 - fineの備忘録 -

ひとりでアプリ開発をするなかで起こったことや学んだことを書き溜めていきます

Unity - PCゲームの解像度(画面サイズ)の変更、設定方法

初めに

 Unity で PCゲームをビルドするとき、フルスクリーンやウィンドウ化の設定をしたり、解像度(Resolution)を設定したりする必要があります。この記事では、解像度の設定方法をまとめます。



前提

 PCゲームについての設定のため、プラットフォームは PC, Mac & Linux Standalone にしておきましょう。

 また、Target Platform を WindowsMacLinux から選んでおきましょう。

 Target Platform に自分が選びたいものが出てこない場合は、そのプラットフォームのモジュールがインストールされていません。(上の画像では Linux が表示されていない)その場合は、Unity Hub から下記の手順でモジュールをインストールしてください。

モジュールのインストールの仕方

  1. Unity Hub を開く
  2. インストール画面を開き、モジュールを加えたいバージョンの設定ボタンをクリックする
  3. 「モジュールを加える」をクリックする
  4. 加えたいプラットフォームのモジュールを選択し、実行ボタンをクリックする

画面サイズ、解像度の設定

 Project Settings から設定できます。Edit > Project Settings... をクリックすることで開けます。

 Player を開き、Settings for PC, Mac & Linux Standalone > Resolution and Presentation > Resolution > Fullscreen Mode から設定します。

Fullscreen Mode(全画面モード)の説明

 Fullscreen Mode(全画面モード)は起動時のデフォルトの画面モードでもあります。次の4つから選べます。

Fullscreen Mode 説明
Fullscreen Window 全画面表示ウィンドウ
Unity で設定された解像度でレンダリングされたあと、スケールされる
Exclusive Fullscreen 専用全画面
Unity で設定された解像度に合わせて、ディスプレオのOS解像度を変更する
Windows限定。他のプラットフォームではFullscreen Mode が代替使用される。
Maximized Window 最大ウィンドウ
macOS でメニューバーとドックが自動的に非表示になる全画面表示になる
mac限定。他のプラットフォームではFullscreen Mode が代替使用される。|
Windowed ウィンドウ化

 Windowed の場合のみ、デフォルトの画面サイズ(解像度)を設定できます。

画面サイズ変更(リサイズ)について

 Resizable Window を true にすると画面サイズの変更が可能になります。逆に、画面サイズを固定しておきたい場合は Resizable Window を false にしておきましょう。
 

スクリプトから画面サイズを変更する

SetResolution

 SetResolution 関数を用いることで解像度や Fullscreen Mode を変更することができます。

public static void SetResolution (int width, int height, bool fullscreen);
public static void SetResolution (int width, int height, bool fullscreen, int preferredRefreshRate= 0);
public static void SetResolution (int width, int height, FullScreenMode fullscreenMode, int preferredRefreshRate= 0);

 引数は次のようになっています。

  • 第1引数:width(幅、px)
  • 第2引数:height(高さ、px)
  • 第3引数:Fullscreen Mode(Fullscreen Window の場合は true、それ以外の場合はそのモードを記述)
  • 第4引数:リフレッシュレート(Hz)

 リフレッシュレートとは、ディスプレイが1秒間に画面上の画像を更新する回数を表します。

サンプル(ボタンで画面サイズを変更できるようにする)

 次のスクリプトの関数をボタンから呼び出すと、画面サイズの変更ができます。

using UnityEngine;

public class ResolutioinScript : MonoBehaviour
{
    public void OnClick_960x540()
    {
        Screen.SetResolution(960, 540, FullScreenMode.Windowed, 60);
    }

    public void OnClick_1920x1080()
    {
        Screen.SetResolution(1920, 1080, FullScreenMode.Windowed, 60);
    }
}

 Button の使い方が分からない場合は、下の記事に使い方をまとめています。ぜひ、ご覧ください。
fineworks-fine.hatenablog.com

最後に

 画面サイズの変更の仕方やリサイズの可否、スクリプトから解像度を変更する方法について、まとめました。リサイズを可能にした場合はアスペクト比を一定に保つ必要もでてきます。このあたりは実際にビルドしてみて、確認しながら設定をしていきましょう。