본문 바로가기
tips/유니티 & 개발

유니티 노치 대응 Screen.safeArea

by 디지털 수공업자 2022. 6. 19.
반응형

요즘 폰 상단에 카메라 구멍이 스마트폰 화면 안으로 들어오면서 카메라 구멍때문에 UI가 방해받는 경우가 발생합니다.

노치 영역을 고려하지 않고 UI를 만드는 경우 카메라 구멍이 중요한 버튼을 가리는 문제가 생길 수 있습니다.

 

구글의 애드몹에서는 앱의 상단에 배너광고를 삽입할 때 노치를 고려하여 일정간격을 자동으로 띄웁니다. 앱에서 노치를 고려하지 않고 UI를 만들경우 예상밖으로 배너광고가 화면 위에서 간격을 두고 떨어져 아래로 내려오기 때문에 더 많은 영역을 광고가 가리게 되고 이 때 UI를 광고가 침범하는 경우 애드몹에서 광고 송출을 제한하거나, 구글콘솔에서 앱을 정지시킬 수 있으니 주의해야 합니다.

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SafeArea : MonoBehaviour {

    private void Awake() {

        RectTransform rt = GetComponent<RectTransform>();
        Rect safeArea = Screen.safeArea;
        Vector2 minAnchor = safeArea.position;
        Vector2 maxAnchor = minAnchor + safeArea.size;

        minAnchor.x /= Screen.width;
        minAnchor.y /= Screen.height;
        maxAnchor.x /= Screen.width;
        maxAnchor.y /= Screen.height;

        rt.anchorMin = minAnchor;
        rt.anchorMax = maxAnchor;

    }
    
}

유니티에서 제공하는 Screen.safeArea로 노치 영역의 크기를 쉽게 가져올 수 있습니다.

이를 이용해 화면의 크기를 변경하여 사용합니다.

 


유니티 매뉴얼 : https://docs.unity3d.com/ScriptReference/Screen-safeArea.html

 

반응형

댓글