⛳
[Unity][コスプレZ]FullScreen⇔Windowの切り替え
はじめに
コスプレZはPC版のみフルスクリーンモードとウィンドウモードを切り替えられるような実装を行ったので今回はその話です。
持ち帰れるもの
- ウィンドウとフルスクリーンの切り替え方法
コスプレZについて
全画面とウィンドウを切り替え可能なシューティングゲームだ!
やり方
以下のソースコードをプロジェクトに入れてSetUpDefaultResolution
->Apply
の順番で実行してください。
詳細はコメントにて。
using UnityEngine;
/// <summary>
/// グラフィック設定
/// </summary>
public static class GraphicSettings
{
//フルスクリーンの基準解像度
private const int SCREEN_WIDTH = 1920;
private const int SCREEN_HIGHT = 1080;
//アスペクト比を考慮したフルスクリーン解像度
private static Vector2Int _defaultResolution;
//ウィンドウ時の基準解像度
private static Vector2Int _windowResolution = new Vector2Int(1280, 720);
/// <summary>
/// 解像度の初期値を設定
/// </summary>
public static void SetUpDefaultResolution()
{
//解像度取得
var screenWidth = Display.main.systemWidth;
var screenHeight = Display.main.systemHeight;
//ディスプレイの解像度を16:9に変換
var originAspect = (float)SCREEN_WIDTH / SCREEN_HIGHT;
var screenAspect = screenHeight == 0 ? 1f : (float)screenWidth / screenHeight;
var height = GameDefine.SCREEN_RESOLUTION_HEIGHT;
var width = (int)(GameDefine.SCREEN_RESOLUTION_WIDTH * (screenAspect / originAspect));
//フルスクリーン時の解像度を取得
_defaultResolution = new Vector2Int(width, height);
}
/// <summary>
/// 解像度を決定
/// </summary>
public static void Apply(bool fullScreen)
{
if (fullScreen)
{
Screen.SetResolution(_defaultResolution.x, _defaultResolution.y, true);
}
else
{
Screen.SetResolution(_windowResolution.x, _windowResolution.y, false);
}
}
}
Discussion