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 ゲームに動的な画面解像度の変更をシームレスに実装でき、プレーヤーに柔軟性を提供し、全体的なゲーム エクスペリエンスを向上させることができます。