UI 작업을 하다 보면 Hierarchy 상에서 GameObject의 순서를 바꿔야 할 때가 많습니다.
특히 Canvas 안의 UI는 Hierarchy 순서 = 렌더 순서(그리기 순서)이기 때문에
순서를 바꾸면 화면에서 어떤 요소가 위에 보이는지가 달라집니다.
Transform.SetAsLastSibling
현재 오브젝트를 부모의 마지막 자식으로 이동
UI에서는 맨 앞(위 레이어)으로 올라옴
myUI.transform.SetAsLastSibling();
사용 예시
- 팝업창을 클릭했을 때, 항상 맨 위로 오도록 만들 때
- 드래그 중인 UI를 최상단에 올릴 때
Transform.SetAsFirstSibling
현재 오브젝트를 부모의 첫 번째 자식으로 이동
UI에서는 맨 뒤(아래 레이어)로 내려감
myUI.transform.SetAsFirstSibling();
사용 예시
- 특정 UI를 항상 배경 레이어로 보내고 싶을 때
- 여러 개의 UI 중 맨 뒤로 보내는 경우
Transform.SetSiblingIndex(int Index)
해당 매개변수에 숫자를 넣어 순서를 직접 지정
myUI.transform.SetSiblingIndex(2); // 2번 인덱스 위치로 이동
사용 예시
- 동적으로 UI 정렬 순서를 맞출 때
- 스크롤뷰에서 아이템을 특정 위치로 이동시킬 때
Transform.GetSiblingIndex()
해당 오브젝트의 순서를 반환
int index = myUI.transform.GetSiblingIndex();
Debug.Log("현재 순서: " + index);
사용 예시
- UI 정렬 상태 확인
- 현재 순서에 따라 다른 동작 적용
'Unity' 카테고리의 다른 글
| [Unity] JSON 저장/불러오기 관련 메서드 (Path.Combine, File.Exits) (0) | 2025.08.19 |
|---|---|
| [Unity] 에디터 GUI (3) | 2025.08.15 |
| [Unity] NavMeshPlus로 2D AI 경로 탐색 구현하기 (3) | 2025.07.07 |
| [Unity] AI Navigation (1) | 2025.07.06 |
| [Unity] Try 시리즈(TryParse, TryGetValue, TryGetComponent) (0) | 2025.06.07 |