유니티 버전 - 6000.0.34f1
목차
- 화면 해상도 및 전체 화면 여부 조절하기
화면 해상도 조절하기
인게임 옵션을 설정할때 그래픽 세팅뿐만 아니라 화면 해상도 또한 바꿀 수 있어야 할 것입니다, 16:9 비율의 해상도만을 필터링하여 게임의 해상도를 바꾸어주는 코드입니다
드롭다운과 토글을 만들어 주고, 드롭다운의 모든 옵션을 지워줍니다
코드를 작성하여줍니다, 아래는 전체 코드입니다
더보기
using UnityEngine;
using System.Collections.Generic;
using UnityEngine.UI;
using TMPro;
public class TitleOption : PopupUI
{
public TMP_Dropdown resolutionsDropdown;
public Toggle fullscreenToggle;
private readonly List<Resolution> _resolutions = new List<Resolution>();
private bool _isFullscreen;
private void Start()
{
InitResolutions();
}
private void InitResolutions()
{
Resolution[] allResolutions = Screen.resolutions;
List<string> options = new List<string>();
foreach (Resolution item in allResolutions)
{
if (Mathf.Approximately((float)item.width / item.height, 16f / 9f))
{
_resolutions.Add(item);
options.Add(item.width + " x " + item.height);
}
}
resolutionsDropdown.AddOptions(options);
}
public void OnChangeResolution(int index)
{
Resolution selectedResolution = _resolutions[index];
Screen.SetResolution(selectedResolution.width, selectedResolution.height, _isFullscreen);
}
public void OnSetFullscreen(bool fullscreen)
{
_isFullscreen = fullscreen;
Screen.fullScreen = _isFullscreen;
}
}
public TMP_Dropdown resolutionsDropdown; // 사용자로부터 입력을 받기 위함
public Toggle fullscreenToggle; // 사용자로부터 입력을 받기 위함
private readonly List<Resolution> _resolutions = new List<Resolution>(); // 실제 16:9 비율로 필터링된 해상도가 저장
private bool _isFullscreen; // 전체화면 여부를 저장
_resolutions를 확인해보면 아래와 같습니다, 현재 모니터의 최대 해상도를 넘는 해상도는 가져오지못합니다(FHD모니터의 경우 QHD, UHD옵션이 추가되지않음)
해상도를 필터링하고 리스트와 드롭다운 목록에 추가 시켜주는 역할입니다
private void InitResolutions()
{
Resolution[] allResolutions = Screen.resolutions;
List<string> options = new List<string>();
foreach (Resolution item in allResolutions)
{
if (Mathf.Approximately((float)item.width / item.height, 16f / 9f))
{
_resolutions.Add(item);
options.Add(item.width + " x " + item.height);
}
}
resolutionsDropdown.AddOptions(options);
}
드롭다운을 이용하여 해상도를 변경시켜주는 역할입니다
public void OnChangeResolution(int index)
{
Resolution selectedResolution = _resolutions[index];
Screen.SetResolution(selectedResolution.width, selectedResolution.height, _isFullscreen);
}
드롭다운의 On Value Changed에서 설정해줍니다
전체화면 여부를 설정하여줍니다
public void OnSetFullscreen(bool fullscreen)
{
_isFullscreen = fullscreen;
Screen.fullScreen = _isFullscreen;
}
토글의 On Value Changed에서 설정해줍니다
실행결과입니다, 디버그로 대체하겠습니다
'코드 및 공부 > 입력 관리' 카테고리의 다른 글
방향키로 버튼간 이동(탐색) 하기, UI Navigation (0) | 2025.02.03 |
---|---|
유니티 유용한 단축키 3가지 (0) | 2025.01.14 |
Dotween의 OnComplete()를 여러개 사용할때 작동하지 않는 문제 (0) | 2025.01.02 |
IsPointerOverGameObject()란? (0) | 2024.12.23 |
Input System을 이용한 움직임 구현 (9) | 2024.10.08 |