Unity/Tip

Unity 화면 꺼짐 방지

코샵 2024. 6. 1. 10:00
반응형

모바일 앱 개발자라면 누구나 경험했을 끔찍한 순간, 바로 중요한 작업 진행 중에 화면이 꺼지는 것입니다. 이러한 불편한 상황을 방지하기 위해 Screen.sleepTimeout 프로퍼티를 사용하여 화면 꺼짐을 자유롭게 제어할 수 있습니다. 

 

Screen.sleepTimeout

Screen.sleepTimeout 프로퍼티는 모바일 앱에서 화면이 꺼지기까지 기다리는 시간을 설정합니다. 기본적으로 이 값은 사용자가 마지막으로 화면을 만진 후 일정 시간이 지나면 화면이 꺼지도록 설정되어 있습니다. 하지만 Screen.sleepTimeout 프로퍼티를 사용하여 원하는 대로 화면 꺼짐 시간을 변경할 수 있습니다.

 

작동 방식

SleepTimeout.NeverSleep는 최대값을 의미하며, 이 값을 Screen.sleepTimeout 프로퍼티에 설정하면 화면이 절대 꺼지지 않도록 설정됩니다. 즉, 사용자가 화면을 만지지 않아도, 앱이 실행 중인 동안에는 화면이 계속 켜져 있는 상태를 유지하게 됩니다.

 

활용 사례

다음과 같은 상황에서 Screen.sleepTimeout = SleepTimeout.NeverSleep; 코드를 활용하면 유용합니다.

  • 영상 재생 앱: 사용자가 영상을 시청하는 동안 화면이 꺼지지 않도록 설정해야 합니다.
  • 게임 앱: 게임 플레이 중 화면이 꺼지면 사용자 경험이 저하될 수 있으므로 화면 꺼짐을 방지해야 합니다.
  • 프레젠테이션 앱: 프레젠테이션 진행 중 화면이 꺼지면 프레젠테이션이 중단될 수 있으므로 화면 꺼짐을 방지해야 합니다.
  • 전자책 앱: 사용자가 책을 읽는 동안 화면이 꺼지지 않도록 설정해야 합니다.

예시

다음은 Screen.sleepTimeout을 활용한 실제적인 앱 개발 예시입니다.

using UnityEngine;

public class VideoPlayer : MonoBehaviour
{
    void Start()
    {
        // 화면 꺼짐 방지
        Screen.sleepTimeout = SleepTimeout.NeverSleep;
    }

    void OnDisable()
    {
        // 화면 꺼짐 설정 복원
        Screen.sleepTimeout = SleepTimeout.SystemSleepTimeout;
    }
}