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 정렬 상태 확인
  • 현재 순서에 따라 다른 동작 적용

 

+ Recent posts