Unity | 유니티/Unity 버그 수정 일지

[Unity] Canvas - 자식 오브젝트 레이어 조절

maintain_H 2022. 11. 22. 13:17
반응형

유니티 3D를 이용해 2D 게임을 제작하고 있는데

 

setting 위에 오브젝트 둥둥..

이런 식으로 자꾸 설정창 위에 Instantiate로 생성한 프리팹이 설정창 위에 나와 수정하기 시작했다.

인스펙터 창에서 Layer를 바꿔보고, Sorting layer 컴포넌트 추가해보고,

Sprite Renderer 추가해서 sorting Layer도 맞춰 봤지만 세 개 다 소용 없음. 어이도 없음.

 

알고보니

setting 밑에 문제의 오브젝트

이렇게 같은 컨버스 내에서 프리팹이 생성돼서 그랬다..

유니티는 Hierarchy에서 밑에 있는 애들이 위쪽으로 올라온다..ㅎㅎ

레이어 설정하기 너무 번거로움 진짜로.

그냥 알아서 눈치껏 자기 자리에 있어야지.

 

 

-  RectTransform에 내장된 함수 사용

한 시간정도 삽질한 후에 해결방법을 알 수 있었다.

컨버스 내에 RectTransform 안에는 SetAsLastSibling과 SetAsLastSibling이라는 함수가 내장되어 있는데,

이게 바로 하이라키창에서 컨버스 내에서 가장 마지막에 또는 가장 첫번째에 위치하게 설정하는 함수이다.

나는 설정창 위에 오브젝트가 나타나는 문제가 있어서 Setting 오브젝트를 컨버스 가장 밑으로 내리기 위해 SetAsLastSibling을 사용했다.

그래서 설정창 스크립트에 이렇게 3줄을 추가했다.

 

짠 문제 해결. 이제 설정창은 가장 위에 나타난다.

반응형