공부/Unity

[unity]UI 자식 오브젝트 크기 상관없이 중앙 정렬 맞추기

개발의 피 2023. 6. 22. 00:25

그냥 아무런 조건 없이 중앙 정렬이야, 레이아웃 그룹 달아주고 middle center 지정해 주면 끝인데.... 
'자식 오브젝트 크기 상관없이(변화가 있을 때)'라는 게 굉장히 힘들어따,,,,, 해볼만큼 다 해본 것 같은데 오브젝트가 바뀌면 안 되길래 코드 작성해야 되나...?라는 고민도 했었다 ㅋㅋㅠ 
horizontal layout group만 썼는데, 선배님이 content size filter도 쓰라고 알려주셔서 해결할 수 있었다.. 오늘도 감사합니다...
 
오늘 몇 시간의 삽질로 알게된 사실들 (아니 지금 정렬을 몇 시간째 못 끝내고 있다고..? 이러면서 자존심 엄청 상했음)
1. 자식의 자식 오브젝트들은 레이아웃 그룹 영향 x (원래 생각했던 방법 : 부모 오브젝트(layout group) - 빈 오브젝트 - 자식 오브젝트들)
이거 쓰려면, 만약 기존에 자식 오브젝트 안에 다른 자식 오브젝트가 들어있다면 레이아웃 그룹 부모 오브젝트 - 자식 / 자식으로 바꿔줘야 한다
2. 1번이 또 되지 않는 이유는... 자식 오브젝트에서 변경점이 있어도 자동으로 반영되지 않는다..... 


핵심은 content size filtter 컴포넌트(preferred size) + horizontal layout group에서 control child size 켜주기 
실제로 control child size를 안 켜주면 ui 프리팹에서 설정해 준 대로 정렬이 되고, 변화가 생겨도 거기에 맞춰서 정렬해주지 않는다...