Unity ゲームの画面解像度を変更する方法

Unity ゲームのビルド後に画面解像度を変更することは、さまざまなデバイス間でのユーザー エクスペリエンスと互換性を向上させるのに便利な機能です。 Unity は、実行時に画面解像度を動的に調整するメソッドを提供します。このチュートリアルでは、Unity ゲームの画面解像度を変更し、利用可能な画面解像度を取得するプロセスを説明します。

実行時の画面解像度の変更

Unity ゲームプレイ中に画面解像度を変更するための簡単な API を提供します。次のコード スニペットを使用して、画面解像度を変更できます。

using UnityEngine;

public class ResolutionManager : MonoBehaviour
{
    // Method to change screen resolution
    public void ChangeResolution(int width, int height, bool fullscreen)
    {
        Screen.SetResolution(width, height, fullscreen);
    }
}

このメソッドを呼び出して解像度を変更するには、シーン内のゲームオブジェクトに attach の 'ResolutionManager' スクリプトを追加し、必要な幅、高さ、およびフルスクリーン モードのパラメーターを指定して 'ChangeResolution' メソッドを呼び出すことができます。

利用可能な画面解像度の取得

プレーヤーに画面解像度の変更を許可する前に、利用可能な解像度のリストをプレーヤーに提供すると有益です。次のコードを使用して、利用可能な画面解像度を取得できます。

using UnityEngine;

public class ResolutionManager : MonoBehaviour
{
    // Method to get available screen resolutions
    public Resolution[] GetAvailableResolutions()
    {
        return Screen.resolutions;
    }
}

このメソッドを使用して、ゲームの設定メニューにドロップダウン メニューまたはリスト UI 要素を追加し、プレイヤーが好みの解像度を選択できるようにすることができます。

'ResolutionUI.cs'

using UnityEngine;
using UnityEngine.UI;

public class ResolutionUI : MonoBehaviour
{
    public Dropdown resolutionDropdown;
    public ResolutionManager resolutionManager;

    void Start()
    {
        // Populate dropdown with available resolutions
        Resolution[] resolutions = resolutionManager.GetAvailableResolutions();
        resolutionDropdown.ClearOptions();
        
        List<string> options = new List<string>();
        foreach (Resolution res in resolutions)
        {
            options.Add(res.width + "x" + res.height);
        }
        resolutionDropdown.AddOptions(options);
    }

    // Method to handle resolution change from UI
    public void OnResolutionChanged(int index)
    {
        Resolution[] resolutions = resolutionManager.GetAvailableResolutions();
        Resolution selectedResolution = resolutions[index];
        resolutionManager.ChangeResolution(selectedResolution.width, selectedResolution.height, true);
    }
}
  • と 'ResolutionUI' スクリプトを、UI ドロップダウン要素 (「ドロップダウン」コンポーネント) を含むゲームオブジェクトにアタッチします。次に、Unity エディターでドロップダウンと 'ResolutionManager' スクリプト参照を割り当てます。

結論

これらの手順に従い、提供されているコード例を組み込むことで、Unity ゲームに動的な画面解像度の変更をシームレスに実装でき、プレーヤーに柔軟性を提供し、全体的なゲーム エクスペリエンスを向上させることができます。

おすすめの記事
Poppy Playtime からインスピレーションを得て Unity で GrabPack を作成する
Unity でバレットタイムエフェクトを作成する
Unity でインタラクティブなオブジェクトを作成する
Unity でのキネティック インタラクションの実装
Unity で特定のキーを使用して引き出しや食器棚を開ける
Unity のインベントリを使用しないピック アンド ドロップ システム
Unity で車にプレーヤー エントリを追加する