게임 해상도 변경

페이지 업데이트 :
페이지 생성 날짜 :

검증 환경

윈도우
  • 윈도우 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 어떤 오브젝트에 붙인 스크립트 메서드로 처리할 수 있다고 생각합니다.

실행 및 확인

각 버튼을 클릭하면 해상도 (+ 창 크기)가 바뀌는 것을 알 수 있다고 생각합니다.