UnityUI와 연출

Canvas 숨기기 효율화

풀스크린 UI를 가릴 때 단순 투명도 조절보다 더 적절한 비활성화 전략을 선택하는 Unity 기본 가이드입니다.

마지막 수정 2026년 3월 19일

기본 패턴

csharp
panel.SetActive(false);

설명

  • 보이지 않는 UI가 여전히 입력과 레이아웃, 렌더링 대상에 남아 있으면 비용을 낼 수 있습니다.
  • Unity UI 최적화 관점에서는 "숨김"이 실제로 무엇을 의미하는지 나눠서 생각해야 합니다.
  • 단순 알파 0은 시각적으로만 안 보이게 하는 것이고, 상호작용과 갱신은 남을 수 있습니다.
  • 팝업 전체를 닫는 경우라면 SetActive(false)가 더 분명한 경우가 많고, 부분 전환은 CanvasGroup이 유용할 수 있습니다.

짧은 예제

csharp
[SerializeField] private GameObject inventoryPanel;

public void ToggleInventory(bool visible)
{
    inventoryPanel.SetActive(visible);
}

빠른 정리

항목설명
알파 0보이지만 않게 할 뿐일 수 있음
SetActive(false)오브젝트 자체를 비활성화
CanvasGroup표시와 상호작용을 함께 제어 가능
팝업 UI전체 on/off 전략과 잘 맞음
숨김 방식화면 전환 목적에 따라 선택

주의할 점

SetActive는 강력하지만 재활성화 시 초기화 흐름이 다시 돌 수 있습니다. 단순 페이드 연출과 실제 비활성화를 같은 문제로 보면 오히려 흐름이 꼬일 수 있습니다.

참고 링크

2 sources