結構面倒なんだろうと思ってたんですが全然そんな事はなく、むしろ簡単すぎる事に驚いたって話。
プロジェクト
ソースコード
解像度リストをスクロールビューに一覧として表示し、ボタンを押すと指定の解像度に変更します。
なお、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); } }