Unity의 Screen 클래스에 대한 심층 이해: 자세한 기술 가이드(4)

머리말

게임개발에서는화면 해상도, 장치 방향, 전체 화면 상태 등을 처리합니다.관련 질문이 중요합니다. 이러한 요소는 게임의 시각적 효과 및 상호 작용 경험을 포함하여 게임의 플레이어 경험에 직접적인 영향을 미칩니다. 예를 들어 다양한 화면 해상도에 맞게 게임의 사용자 인터페이스를 최적화해야 하거나 장치가 회전할 때 게임의 방향을 변경해야 할 수 있습니다. Unity 게임 개발 환경에서는화면클래스는 이러한 기능을 제공하는 도구입니다.

화면 개요

Unity의 Screen 클래스는 기기 화면과 관련된 많은 속성과 메서드를 제공하며, 이는 기기 화면에 대한 자세한 정보를 얻거나 기기 화면의 일부 설정을 변경하는 데 매우 유용합니다.

다음 내용에서는 Screen 클래스의 모든 속성과 메서드를 자세히 분석하고 해당 코드 예제를 제공합니다. Unity를 이제 막 시작했거나 고급 사용법을 찾고 있는 노련한 개발자라면 이 문서에서 유용한 정보를 찾을 수 있습니다.


1. 화면 크기는 해상도와 관련이 있습니다.
Screen.width: 화면 너비를 픽셀 단위로 반환합니다.

Debug.Log("屏幕宽度: " + Screen.width); //可能的输出: 屏幕宽度: 1920

Screen.height: 화면의 높이를 픽셀 단위로 반환합니다.

Debug.Log("屏幕高度: " + Screen.height); //可能的输出: 屏幕高度: 1080

Screen.dpi: 현재 화면의 dpi(인치당 도트 수)를 반환합니다. 읽기 dpi를 지원하지 않는 장치의 경우 0.0이 반환됩니다.

Debug.Log("屏幕DPI: " + Screen.dpi); //可能的输出: 屏幕DPI: 96

Screen.currentResolution: 화면의 현재 해상도를 반환합니다.

Debug.Log("当前分辨率: " + Screen.currentResolution.ToString()); //可能的输出: 当前分辨率: 1920 x 1080 @ 60Hz

Screen.resolutions: 지원되는 모든 화면 해상도를 반환합니다.

foreach (Resolution res in Screen.resolutions)
{
    
    
    Debug.Log("支持的屏幕分辨率: " + res.ToString()); //可能的输出: 支持的屏幕分辨率: 800 x 600 @ 60Hz
}

Screen.SetResolution(): 화면의 해상도를 설정합니다. 이 방법에는 너비, 높이 및 전체 화면인지 여부의 세 가지 매개 변수가 필요합니다.

//设置屏幕分辨率为1024x768,并设置为全屏模式
Screen.SetResolution(1024, 768, true);

2. 화면 방향 관련:
Screen.orientation: 화면의 방향을 가져오거나 설정하는 데 사용됩니다.

ScreenOrientation currentOrientation = Screen.orientation;
Debug.Log("当前方向: " + currentOrientation.ToString()); //可能的输出: 当前方向: LandscapeLeft

Screen.autorotateToPortrait: 이 속성을 true로 설정하면 장치가 자동으로 세로 모드로 회전할 수 있습니다.

//允许设备自动旋转到纵向模式
Screen.autorotateToPortrait = true;

Screen.autorotateToPortraitUpsideDown: 이 속성을 true로 설정하면 장치가 자동으로 세로 반전 모드로 회전할 수 있습니다.

//允许设备自动旋转到纵向倒置模式
Screen.autorotateToPortraitUpsideDown = true;

Screen.autorotateToLandscapeLeft: 이 속성을 true로 설정하면 장치가 자동으로 왼쪽 가로 모드로 회전할 수 있습니다.
Screen.autorotateToLandscapeLeft: 이 속성을 true로 설정하면 장치가 자동으로 왼쪽 가로 모드로 회전할 수 있습니다.

//允许设备自动旋转到横向左侧模式
Screen.autorotateToLandscapeLeft = true;

//允许设备自动旋转到横向右侧模式
Screen.autorotateToLandscapeRight = true;

3. 전체 화면 모드 관련:
Screen.fullScreen: 이 속성은 게임이 전체 화면 모드인지 여부를 가져오거나 설정하는 데 사용할 수 있습니다.

bool isFullScreen = Screen.fullScreen;
Debug.Log("是否全屏: " + isFullScreen); //可能的输出: 是否全屏: true
Screen.fullScreen = false;

Screen.fullScreenMode: 이 속성은 전체 화면 모드의 유형을 가져오거나 설정하는 데 사용할 수 있습니다. ExclusiveFullScreen, FullScreenWindow, MaximizedWindow, Windowed를 포함하는 열거형입니다.

FullScreenMode currentFullScreenMode = Screen.fullScreenMode;
Debug.Log("当前全屏模式为: " + currentFullScreenMode.ToString()); //可能的输出: 当前全屏模式为: ExclusiveFullScreen
Screen.fullScreenMode = FullScreenMode.Windowed;//设置全屏模式为窗口模式

4. 기타:
Screen.sleepTimeout: 화면의 슬립 타임아웃 시간을 제어합니다. 예를 들어 NeverSleep으로 설정하면 화면이 절대 절전 모드로 전환되지 않습니다.

//设置屏幕永不进入休眠状态
Screen.sleepTimeout = SleepTimeout.NeverSleep;

Screen.brightness: 이 속성은 화면의 밝기를 가져오거나 설정하는 데 사용됩니다. 값의 범위는 0.0에서 1.0까지이며 여기서 0.0은 가장 어둡고 1.0은 가장 밝습니다. 이 함수는 주로 모바일 장치에서 사용할 수 있으며, Windows 플랫폼에서 이 속성을 가져오면 1.0이 반환되고 이 속성을 설정해도 아무 효과가 없습니다.
화면 밝기를 가장 밝게 설정하려면 다음 코드를 사용할 수 있습니다.

Screen.brightness = 1.0f;

Screen.safeArea: 화면의 안전 영역(표시 가능 영역)으로 돌아갑니다. 이 영역은 노치 또는 둥근 모서리와 같이 가능한 모든 하드웨어 및 소프트웨어 폐색이 제외되는 화면 영역입니다.

Rect safeArea = Screen.safeArea;
Debug.Log("安全区域: " + safeArea.ToString()); //可能的输出: 安全区域: (0.0, 0.0, 1080.0, 1920.0)

Screen.cutouts: 콘텐츠를 표시할 수 없는 화면 영역 목록을 반환합니다. 컷아웃은 하드웨어(예: 카메라, 스피커 등)의 존재로 인해 콘텐츠를 표시할 수 없는 장치 화면의 영역을 말합니다. 특히 Notch 또는 하드웨어 수준 폐색이 있는 기타 장치를 처리하는 데 적합합니다.

다음은 장치 화면에서 모든 컷아웃의 크기와 위치를 가져오고 인쇄하는 간단한 예입니다.

 Rect[] cutouts = Screen.cutouts;
 foreach(Rect cutout in Screen.cutouts)
 {
    
    
     Debug.Log("Cutout位置: " + cutout.position);
     Debug.Log("Cutout尺寸: " + cutout.size);
 }

게임의 사용자 인터페이스를 디자인할 때 컷아웃의 존재를 고려하고 컷아웃으로 가려진 영역에 중요한 정보나 컨트롤을 배치하여 사용자 경험에 영향을 미치지 않도록 해야 합니다.


위는 Unity의 Screen 클래스의 모든 속성과 메서드에 대한 자세한 분석 및 사용법입니다. 이 기사를 통해 이 클래스를 더 잘 이해하고 사용하여 게임 시각 효과를 더 잘 조정하고 최적화할 수 있기를 바랍니다.

おすすめ

転載: blog.csdn.net/qq_33795300/article/details/131700773
おすすめ