기본 패턴
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