게임 해상도 변경
검증 환경
- 윈도우
-
- 윈도우 11
- 유니티 에디터
-
- 2021.3.1f1
- 입력 시스템 패키지
-
- 1.3.0
이 팁의 전제 조건
다음 설정은 이러한 팁을 설명하기 위한 전제 조건으로 미리 구성되어 있습니다.
게임 시작 시 해상도 지정
프로젝트 설정에서 게임 시작 시 해상도를 설정할 수 있습니다. 다만, 윈도우 모드 상정 등의 제약이 있기 때문에, 확실하게 설정하고 싶은 경우는, 후술하는 프로그램에 의한 설정이 보다 안심할 수 있다고 생각합니다.
이렇게 하려면 메뉴에서 Edit -> Project Settings 를 선택합니다.
왼쪽 메뉴에서 "플레이어"를 선택합니다.
하단에서 각 환경에 대한 설정을 찾을 수 있습니다. 예를 들어, 맨 왼쪽의 표시 아이콘이 Windows와 같은 PC 환경의 설정인 경우입니다.
"해상도 및 디스플레이"는 내부가 축소되어 있으므로 클릭하여 확장하고 해상도 그룹의 "전체 화면 모드"에서 "창"을 선택합니다.
그러면 "기본 화면 너비"와 "기본 화면 높이"가 표시되므로 여기에서 해상도 (= 화면 크기)를 설정할 수 있습니다. 이 설정은 창 모드에서만 설정할 수 있습니다.
다른 환경에도 설정이 있으니 확인하시기 바랍니다. 다음 다이어그램은 WebGL의 구성을 보여줍니다. 해상도 = 캔버스 크기.
실행 및 확인
유니티 에디터에서 실행해도 맞는지 확인할 수 없기 때문에 게임을 출력하고 확인합니다. 자세한 내용은 게임 출력 팁을 참조하세요.
지정된 화면 크기로 표시되는지 확인하십시오.
그러나 크기 값을 변경하더라도 크기는 변경되지 않을 수 있습니다. 게임 자체가 이전 해상도를 기억하기 때문입니다. 디스플레이가 지정된 해상도인지 확인하려면 아래 설명된 프로그램으로 변경하는 것이 더 안정적입니다.
프로그램에서 해상도 변경
여기에서는 다음과 같은 화면을 준비하여 각 버튼을 클릭 할 때마다 해상도가 바뀌도록 프로그래밍 방식으로 제어하고 싶습니다. UI 및 단추를 처리하는 방법에 대한 자세한 내용은 UI 팁을 참조하세요.
각 버튼을 클릭하면 다음과 같은 일이 발생합니다.
using UnityEngine;
public class ButtonEvent : MonoBehaviour
{
public void OnClick_960x540()
{
// 横幅 pixel、縦幅 pixel、ウィンドウモード、リフレッシュレート(Hz) を指定
// ウィンドウモードの場合、ウィンドウサイズも変わる
Screen.SetResolution(960, 540, FullScreenMode.Windowed, 60);
}
public void OnClick_1280x720()
{
// 横幅 pixel、縦幅 pixel、ウィンドウモード、リフレッシュレート(Hz) を指定
// ウィンドウモードの場合、ウィンドウサイズも変わる
Screen.SetResolution(1280, 720, FullScreenMode.Windowed, 60);
}
public void OnClick_1600x900()
{
// 横幅 pixel、縦幅 pixel、ウィンドウモード、リフレッシュレート(Hz) を指定
// ウィンドウモードの場合、ウィンドウサイズも変わる
Screen.SetResolution(1600, 900, FullScreenMode.Windowed, 60);
}
}
아래 두 방법의 유일한 차이점은 해상도 번호입니다.
Screen.SetResolution
메서드 인수에 각각 "resolution width (px)", "resolution height (px)", "full screen mode", "refresh rate (Hz)"를 지정하여 해상도를 변경할 수 있습니다.
이번에는 창 모드로 설정하지만 전체 화면 모드에서도 같은 방법으로 설정할 수 있습니다.
게임 시작 시 억지로 설정하고 싶다면 첫 장면의 awake
어떤 오브젝트에 붙인 스크립트 메서드로 처리할 수 있다고 생각합니다.
실행 및 확인
각 버튼을 클릭하면 해상도 (+ 창 크기)가 바뀌는 것을 알 수 있다고 생각합니다.