Engine/Unity

[Unity] TMP 사용방법 / 한글 폰트 깨질 때

예나월드 2024. 5. 6. 22:38
반응형

 


 

유니티에는 텍스트를 표현하기 위해서 Text 혹은 TextMeshPro(줄여서 TMP)를 이용할 수 있습니다.

 

하지만 기존의 Text는 기능이 제한적이기 때문에 저는 보통 TMP를 사용하는 편입니다.

 

TMP를 사용하는 방법과 TMP 사용 시 한글이 깨질 때 해결방안을 알려드리도록 하겠습니다.

 


 

일단 구글 폰트에서 자신이 유니티에서 사용하고자 하는 폰트를 다운로드하여줍니다.

 

https://fonts.google.com/?subset=korean<

 

Browse Fonts - Google Fonts

Making the web more beautiful, fast, and open through great typography

fonts.google.com

 

저는 Noto Sans Korean 폰트를 다운로드하였습니다. 폰트를 다운로드하였으면 폰트를 유니티 프로젝트로 드래그 앤 드롭해 줍니다.

 

 

 

 

폰트를 프로젝트로 옮겼다면 TMP 패키지를 임포트 해야 합니다. Window - TextMeshPro - Import TMP Essential Resources를 클릭해 줍니다. 클릭하면 창이 하나 나올 텐데 거기서도 Import 버튼을 눌러줍니다.

 

 

 

 

TMP 패키지를 임포트 완료했으면 이제 기존의 폰트를 TMP가 사용하는 형식의 폰트로 바꿔줘야 합니다.

 

Window - TextMeshPro - Font Asset Creator를 클릭해 줍니다.

 

 

 

 

Font Asset Creator를 클릭하면 위와 같은 창이 나오게 됩니다.

 

Source Font File에는 자신이 다운로드하여서 프로젝트에 옮겨놓은 폰트를 넣어줍니다. 폰트를 제외한 설정은 위와 동일하게 해 주시면 됩니다. 

 

Altas Resolution, Render Mode 등과 같은 설정에 대한 내용은 유니티 TMP 매뉴얼에서 확인할 수 있습니다.

 

Source Font File에 폰트를 넣어주었다면 Generate Font Atlas를 클릭해 줍니다.

 

 

 

 

폰트 에셋이 만들어졌다면 Save 버튼을 눌러서 생성한 폰트 에셋을 프로젝트에 저장합니다.

 

 

 

 

폰트 에셋이 저장이 완료되었다면 TMP 오브젝트를 생성하고 폰트를 적용시켜 줍니다.

 

 

 

 

한글을 쓰지 않는다면 이대로 사용해도 무방하겠지만 이 상태로는 한글을 입력하면 폰트가 아래와 같이 깨지게 됩니다.

 

 

 

한글을 입력하면 글자가 깨지는 현상을 수정하기 위해 방금 저장한 TMP 폰트 에셋을 클릭해 줍니다.

 

클릭하고 Generation Settings 옵션을 보면 아래와 같이 설정이 되어있을 것입니다.

 

 

 

 

Atlas Population Mode를 Static에서 Dynamic으로 변경하고, Sampling Pont Size를 폰트에 맞게 적당히 수정해 줍니다.현재 Pont Size는 683이지만 100으로 낮춘 다음에 Apply를 눌러서 적용을 시키겠습니다.

 

 

 

 

그리고 이제 확인을 해보면 한글이 정상적으로 출력되는 모습을 볼 수 있습니다.

 

 

 

 

반응형