
結構面倒なんだろうと思ってたんですが全然そんな事はなく、むしろ簡単すぎる事に驚いたって話。
プロジェクト
ソースコード
解像度リストをスクロールビューに一覧として表示し、ボタンを押すと指定の解像度に変更します。
なお、Unity Editor では動作しないのでビルドした環境でお試しください(これは Unity 規定の動作です)。
ポイントとなるコードに色を入れておきました。
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class Sample : MonoBehaviour
{
[SerializeField]
Toggle Toggle = null;
[SerializeField]
Button Button = null;
[SerializeField]
ContentSizeFitter Content = null;
void Start()
{
Resolution[] resolutions = Screen.resolutions;
foreach (var resolution in resolutions)
{
Button button = Instantiate(Button, Content.transform);
button.gameObject.SetActive(true);
TextMeshProUGUI text = button.GetComponentInChildren<TextMeshProUGUI>();
text.SetText($"{resolution.width} x {resolution.height} {resolution.refreshRate}Hz");
button.onClick.AddListener(() => OnClick(resolution));
}
}
void OnClick(Resolution resolution)
{
Screen.SetResolution(resolution.width, resolution.height, Toggle.isOn, resolution.refreshRate);
}
}



