유니티 TextMesh Pro 사용방법

이번 포스팅에서는 Text Mesh Pro 사용방법에 대해 알아보고자 합니다.


TextMesh Pro 임포트

세팅

 

프로젝트 세팅에 들어가셔서 TextMesh Pro를 임포트해줍니다.

그 다음, TextMeshPro - Text를 하나 생성해준 다음 영어와 한글을 적어줍니다.

 

어라? 글씨가 깨진다

 

캔버스를 보시면 한글이 깨져있는 것을 볼 수 있습니다. 그 이유는 폰트가 영어 및 기호들만 Bake 되어 있는 동시에 Static Mode이기 때문입니다. 따라서 TextMeshPro에서 기본적으로 제공하는 폰트는 한글을 지원하지 않는다는 소리입니다.

 

Static TextMeshPro

  • Static Mode는 표시할 텍스트에 대해 미리 메모리를 할당합니다. 
  • 메모리가 미리 할당되기 때문에, Static TextMeshPro는 텍스트가 자주 변경되지 않는 상황에서 성능이 효율적입니다. 텍스트 내용이 같은 경우, 메모리 재할당이나 레이아웃 재계산이 필요 없기 때문입니다. 예를 들어, 라벨, 일정한 텍스트를 가진 UI 요소("점수: ", "체력: " 등)에 적합합니다.
  • 단점으로는 동적인 텍스트 내용을 처리하는 데 미리 할당된 양보다 더 많은 문자를 표시해야 할 경우 문제가 발생할 수 있으며, 수동 조정이 필요할 수 있습니다. 또한 텍스쳐에 없는 글씨의 경우 위 사진처럼 글씨가 깨지게 됩니다.

Dynamic TextMeshPro

  • Dynamic TextMeshPro는 고정된 메모리 공간을 미리 할당하지 않습니다. 
  • 플레이어 입력, 채팅 메시지, 점수 업데이트 또는 텍스트 내용이 미리 알려지지 않는 상황에 적합합니다. 
  • 텍스쳐에 없는 글씨의 경우 자동으로 글씨를 추가하여 Bake합니다.
  • 단점으로는, 동적으로 Bake될 때 정해진 텍스쳐 크기를 벗어나게 되면 글씨가 깨질 수 있습니다. 또한 텍스쳐 사이즈에 비례해 글자가 너무 많이 Bake되면 품질이 떨어지게 될 수 있습니다.

 

Font를 Bake하는 방법은 아래 포스팅을 참고해주세요.

 

유니티 TextMeshPro Font

예제 폰트(쿠키런 폰트!) 쿠키런 폰트 쿠키런 글꼴을 이제 웹에서도 즐기세요. www.cookierunfont.com 위에 가서 폰트를 다운받아줍니다! OTF와 TTF의 차이점 파일 형식: OTF: OpenType 글꼴은 TrueType 글꼴 형

wlsdn629.tistory.com


Dynamic Bake

폰트

 

자신이 사용하고자 하는 Font를 다운받아줍니다.

Font Asset

 

글씨가 깨졌을 때 동적으로 bake되길 원하는 폰트를 우클릭 후 Font Asset을 만들어 준 후 이름 끝에 Fallback을 적어줍니다.

 

Fallback 등록

 

현재 사용중인 TextMeshPro의 Font Asset을 클릭 후 맨 아래 Fallback List에 방금 만들어둔 Fallback을 등록해줍니다.

쿠키런 폰트가 적용

 

아까까진 깨지던 폰트가 이제는 제대로 표기가 되는 것을 확인할 수 있습니다.

영어는 기존 LiberationSans 폰트지만 한글의 경우에는 쿠키런 폰트가 적용되게 되었습니다.

 

아틀라스를 확인해보면 'ㅎ' , 'ㅇ'라는 단어가 Bake된 것을 확인할 수 있습니다.


Font Style

Font Style

 

TextMesh Pro에는 Font Style을 지정할 수 있습니다. Font Style을 그냥 체크하는것이 아니라 아까 Fallback등록했던 인스펙터창에서 똑같이 볼드체, 이탈리아체를 설정하셔야 합니다.

Bold

아까 다운 받은 폰트에는 Bold체가 존재하므로 Bold체를 Font Asset으로 만들어주겠습니다.

Font Weights

그 다음, Font Weights의 Bold체 부분에 할당해주면 됩니다. 

 

다운 받은 폰트에는 이탈리아체가 없으므로 Bold체만 할당해주고 넘어가겠습니다. 

(맨 왼쪽) Bold X / (중간) Bold O,  Font Weigth 설정 X  / (맨 오른쪽) Bold O,  Font Weigth 설정 O

 

차이가 느껴지시나요? Font Weight가 적용되지 않으면 글씨와 글씨 사이 즉, 자간이 벌어지는 것을 확인할 수 있습니다.

움짤로 확인해보세용

 

Font Weight부분을 설정할 수 있는 여유가 있다면 하시면 될 것 같습니다.


Font Material

메테리얼

 

Text Mesh Pro컴포넌트 아래에는 기본적으로 그림자, 아웃라인 등의 효과를 적용할 수 있는 옵션이 있습니다.

우측 사진과 같이 같은 폰트를 사용하지만 다른 효과를 주기 위해 저처럼 Font Asset을 복사해서 사용하고 계시진 않으셨나요?

폰트 복사

 

더 이상 Font Asset을 복사하지 마세요!

Preset

 

메테리얼 옵션을 변경하는 곳에 우클릭 후 Create Material Preset을 눌러서 프리셋을 만들어줍니다!

Preset

 

프리셋의 이름은 반드시 기존 SDF 네이밍이 같아야 합니다. 예를 들어, CookieRun Bold SDF으로 새로 프리셋을 만들면 CookieRun Bold SDF - (etc) 이 와 같은 형식을 지켜야 합니다.

 

Text Mesh Pro 컴포넌트의 메테리얼 프리셋 토글을 펼치면 방금 만든 프리셋들이 추가된 것을 확인할 수 있습니다.

동일하게 작동한다

 

더 이상 Font Asset을 복사해서 사용하지마세요!!!!