본문 바로가기

Unity

[Unity] 유니티에서 TextMesh Pro(TMP) 한글 폰트 문제 해결하기

유니티(Unity)를 사용하여 게임이나 애플리케이션을 개발할 때, TextMesh Pro(TMP)를 활용하면 텍스트 렌더링의 퀄리티를 높일 수 있습니다. 그러나 때때로 한글 폰트가 제대로 표시되지 않고 □(사각형)로 나오는 현상이 발생할 수 있습니다. 이 글에서는 그 원인과 해결 방법을 상세히 설명하겠습니다.

1. 한글 폰트가 □로 나오는 이유

한글 폰트가 □로 나오는 주된 이유는 TextMesh Pro에서 사용하는 폰트 에셋에 한글 글자가 포함되지 않았기 때문입니다. 대부분의 기본 폰트 에셋에는 영문자와 숫자만 포함되어 있으며, 한글과 같은 비라틴 문자들은 포함되어 있지 않습니다.

2. 해결 방법

한글 폰트가 정상적으로 표시되도록 하려면, 한글이 포함된 폰트 파일을 사용하여 TMP 폰트 에셋을 생성해야 합니다. 아래의 단계에 따라 해결해 보세요.

2.1 한글 폰트 파일 다운로드

먼저 한글을 지원하는 폰트 파일을 다운로드합니다. 네이버의 나눔글꼴은 한글을 지원하는 대표적인 무료 폰트입니다. 네이버 나눔글꼴 페이지에서 폰트를 다운로드할 수 있습니다.

2.2 TextMesh Pro 폰트 에셋 생성

  1. 유니티 에디터에서 TMP 폰트 에셋 생성:
    • 다운로드한 한글 폰트 파일(.ttf 또는 .otf)을 유니티 프로젝트의 Assets 폴더에 복사합니다. 이 포스트에서는 '나눔고딕'을 사용하겠습니다.
    • Window > TextMeshPro > Font Asset Creator를 선택하여 TMP Font Asset Creator 창을 엽니다.

  1. Font Source에서 업로드한 한글 폰트를 선택합니다.
  2. Atlas Resolution을 4096*4096 사이즈로 설정합니다.
  3. Character Set을 Custom Range로 설정하고 다음과 같은 범위를 입력합니다:
    • 32-126 : 영어 범위
    • 44032-55203 : 한글 범위
    • 12593-12643 : 한글 자모
    • 8200-9900 : 특수문자 (글꼴에 따라 지원하지 않는 특수문자는 missing이 날 수 있습니다.)
  4. Generate Font Atlas 버튼을 클릭하여 폰트 아틀라스를 생성합니다.

  1. 생성된 폰트 에셋을 프로젝트에 저장합니다.
  2. 텍스트에 새 폰트 에셋 적용:
    • TMP 텍스트 객체를 선택합니다.
    • Inspector 창에서 Font Asset을 방금 생성한 한글 폰트 에셋으로 변경합니다.

2.3 TMP 폰트 에셋 최적화

한글 글자는 매우 많기 때문에 폰트 아틀라스를 생성할 때 최적화가 필요합니다. 필요한 글자만 포함하도록 커스텀 캐릭터 세트를 설정하면 메모리 사용량을 줄일 수 있습니다.

3. 결론

유니티에서 TextMesh Pro를 사용하여 한글을 표시할 때 발생하는 문제는 폰트 에셋에 한글이 포함되지 않아서 발생하는 경우가 대부분입니다. 나눔글꼴과 같은 한글을 지원하는 폰트를 사용하여 TMP 폰트 에셋을 생성하면 이 문제를 쉽게 해결할 수 있습니다. 다음과 같은 단계를 통해 한글 폰트를 적용해 보세요.

  • 한글 폰트 파일 다운로드 (예: 네이버 나눔글꼴)
  • TMP 폰트 에셋 생성
  • TMP 폰트 에셋을 텍스트에 적용

참고 링크