게임엔진관련/유니티 엔진

[Unity] 유니티 UI요소(예:Text문자열)를 오브젝트크기를 콘텐츠크기 맞추기

AlrepondTech 2019. 10. 11. 12:14
반응형

 

 

=======================

=======================

=======================

 

 

텍스트 크기에 맞추기

Text 컴포넌트가 있는 사각 트랜스폼을 텍스트 콘텐츠의 크기에 맞추려면 Text 컴포넌트가 있는 동일한 게임 오브젝트에 Content Size Fitter 컴포넌트를 추가합니다. 그런 다음, 가로 피트 및 세로 피트 드롭다운을 모두 우선으로 설정해야 합니다.

 

 

 

=======================

=======================

=======================

 

 

 

 

출처: https://teraphonia.tistory.com/739

 

문서 : https://docs.unity3d.com/kr/current/Manual/UIAutoLayout.html

 

 

RectTransform 크기를 TextMesh의 텍스트의 양에 따라 자동으로 조절해 주도록 하고 싶었는데,

 

직접 하려니 그 크기를 직접 계산해서 RectTransform을 조절해 주어야 하는지 생각해 보고 있었다.

 

그러던 중 우연히 발견한 ContentSizeFitter...

 

단순히 RectTransform / TextMesh 컴포넌트가 존재하는 GameObject에 

 

유니티의 기본 제공 컴포넌트인 ContentSizeFitter를 추가해 주는 것으로 해결이 된다..

 

이렇게 Preferred Size로 지정하면, 텍스트에 맞춰 TextMesh 크기가 자동으로 조절된다.

 

그 후, RectTransform에서 width를 이렇게 지정해 주면,

 

'width 80, 세로는 알아서 맞춰서 조절' 상태가 된다.

 

그래서 텍스트에 따라 자동으로 세로 크기가 늘어나며 조절된다.

 

정말....

 

알기만 한다면 엄청나게 편한 것들이 많이 존재하는 것 같다...

 

하루 종일 생각하다 간단히 해결..



출처: https://teraphonia.tistory.com/739 [Teraphonia]

 

 

 

반응형

 

728x90

 

 

 

=======================

=======================

=======================

 

 

 

 

출처: https://thd0011.tistory.com/48

 

유니티 UI 컴포넌트중 사이즈를 자식오브젝트의 크기에 맞춰 변경되는 Conetnt Size Fitter 컴포넌트가 있습니다. 보통 Text 컴포넌트나 Layout 을 사용하는 컴포넌트에 자주 사용하고 있습니다.

아래처럼 Conetnt Size Fitter 를 사용하는 Text 컴포넌트와 그렇지 않은 컴포넌트의 화면을 비교하면 차이가 나는것을 확인할 수 있습니다.

하지만 Conetnt Size Fitter 컴포넌트를 사용할 수 없는 경우가 있는데, 부모 오브젝트가 Layout Group 컴포넌트를 가지고 있으면 자식오브젝트는 Conetnt Size Fitter를 가질수가 없습니다.

이유는 Conetnt Size Fitter도 크기를 제어하지만, 부모오브젝트의 Layout Group 도 자식 오브젝트의 크기를 제어할 수 있기 때문에 충돌이 발생해서 정의되지 않는 동작이 발생할 수 있기 때문입니다. 부모오브젝트의 크기를 제어하면서 자식오브젝트의 크기를 제어할 수 있는방법을 유니티에서 제공하고 있습니다. 링크로 대체합니다.

https://docs.unity3d.com/kr/current/Manual/HOWTO-UIFitContentSize.html

 

 

 

=======================

=======================

=======================

 

 

 

반응형