유니티 C# 노치 대응하기 SafeArea 에셋 추천 UI

반응형

유니티 C# 노치 대응하기 SafeArea 에셋 추천 UI

 

1. 프로젝트 설정

먼저 Unity에서 노치 대응을 위한 기본 설정을 합니다.

1.1. iOS 설정

  1. Project Settings > Player > iOS 탭으로 이동합니다.
  2. Resolution and Presentation 섹션에서 Render Outside Safe Area체크 해제합니다. 이렇게 하면 iOS의 Safe Area 내부에서만 렌더링이 이루어지게 됩니다.
  3. Status Bar 스타일을 원하는 대로 설정할 수 있습니다.

1.2. Android 설정

  1. Project Settings > Player > Android 탭으로 이동합니다.
  2. Resolution and Presentation 섹션에서 Render Outside Safe Area체크 해제합니다.

 

2. Safe Area 스크립트 작성

다음으로, 노치와 같은 화면의 안전 영역을 고려해 UI를 조정하는 스크립트를 작성합니다.

using UnityEngine;
using UnityEngine.UI;

public class SafeArea : MonoBehaviour
{
    private RectTransform _panel;
    private Rect _lastSafeArea = new Rect(0, 0, 0, 0);
    private Vector2 _minAnchor = Vector2.zero;
    private Vector2 _maxAnchor = Vector2.one;

    void Awake()
    {
        _panel = GetComponent<RectTransform>();
        if (_panel == null)
        {
            Debug.LogError("SafeArea: No RectTransform found on the GameObject.");
            return;
        }

        ApplySafeArea();
    }

    void ApplySafeArea()
    {
        Rect safeArea = Screen.safeArea;

        if (safeArea != _lastSafeArea)
        {
            _lastSafeArea = safeArea;

            _minAnchor = safeArea.position;
            _maxAnchor = safeArea.position + safeArea.size;

            _minAnchor.x /= Screen.width;
            _minAnchor.y /= Screen.height;
            _maxAnchor.x /= Screen.width;
            _maxAnchor.y /= Screen.height;

            _panel.anchorMin = _minAnchor;
            _panel.anchorMax = _maxAnchor;
        }
    }

    void Update()
    {
        ApplySafeArea();
    }
}

 


간단하게 구현하기

 

Safe Area Helper | GUI 도구 | Unity Asset Store

Use the Safe Area Helper from Crystal Pug on your next project. Find this GUI tool & more on the Unity Asset Store.

assetstore.unity.com

 

반응형