유니티를 사용하다보면 텍스트에 맞춰서 박스크기가 가변되는것을 원할때가 있다.
여기서 우리는 흔하게 사용하는것이 ContentSizeFillter이다.
하지만 사용해본사람은 알것이다.
배경박스와 텍스트컨포넌트 둘다 ContentSizeFitter를 넣어야지 돌아가는데 꼭 이런 에러메세지가 있어서 신경쓰인다.
심지어 실시간으로 가변됐을때 이전크기로 적용되어서 이런 사태가 발생한다.
그래서 다양한 방법을 사용했었지만, 경험상 가장 깔끔하고 유니티에서 가이드해주는 방식으로 접근하고자한다.
유니티에서 위와같은 상황에서 가이드하는 메뉴얼
https://docs.unity3d.com/kr/current/Manual/HOWTO-UIFitContentSize.html
방법은 의외로 별것없다.
부모 오브젝트 (텍스트 박스 배경있는 오브젝트)
ContentSizeFitter와 Layout Group을 가지고있고
ControlChildSize와 Child Force Expand가 원하는 방향으로 활성화 되어있으면 된다.
자식 오브젝트 (텍스트 컨포넌트가 있는 오브젝트)
ContentSizeFitter 대신에 Layout Element가 들어간다.
그리고 FlexibleWidth 혹은 FlexibleHeight를 활성화시키고 1로 두면된다고 한다.
위와같이 설정하면 기존처럼 가변되는 텍스트박스가 구현된다!
심지어 경고메세지도 없고 가변이 어긋하는 이슈도 함께 해결이된다!
반응형
'게임 개발 > Unity' 카테고리의 다른 글
[유니티 firebase] - 파이어베이스 시작하기 (0) | 2023.05.08 |
---|---|
[유니티 C#] 특정 텍스트 눌러서 팝업 띄우기 (2) | 2022.08.29 |
[유니티 C#] MonoBehaviour를 상속 받아야하는 Singleton, 모노 싱글톤 (0) | 2021.08.29 |
[유니티 C#] SafeArea 상,하,좌,우 4방향 각자 대응 (0) | 2021.07.24 |
[유니티 C#] UI Animation State 이름 중복 사용 (0) | 2021.07.11 |