TMP UI 사용하기
Unity에서 Text UI, TMP를 사용하기 위해서는 아래와 같이 TMP 패키지 임포트가 필요합니다.
Window → TextMeshPro → Import TMP Essential Resources 혹은
Canvas → New → UI → Text(TMP)를 추가하면 임포터 윈도우가 바로 나타납니다.

TMP 한글 오류
Unity에서 텍스트를 표시할 때, TextMeshPro(TMP)는 기존 Text보다 훨씬 선명하고 유연한 폰트 렌더링을 제공합니다.
하지만 기본 TMP 폰트는 한글을 지원하지 않기 때문에, 그대로 사용하면 아래 이미지처럼 한글이 깨지거나 ‘□’(네모)로 표시되는 경우가 많습니다.

이 문제를 해결하기 위해 Unity TMP UI에 한글 폰트를 적용하는 과정을 단계별로 정리했습니다.
해당 가이드는 Unity 6000.0.37f1 버전으로 제작되었습니다. 버전에 따라 다를 수 있지만, 왠만하면 다 상관없을 겁니다.
TMP 한글 폰트 생성
1. TMP용 한글 폰트를 생성하기 위해서는 우선 Unity에 한글 폰트 파일(.otf 또는 .ttf)을 추가해야 합니다.
다운로드 링크 추천: https://noonnu.cc
| 폰트명 | 라이선스 | 특징 |
| 나눔고딕 (NanumGothic) | 무료 (상업용 가능) | 명확하고 깔끔한 가독성 |
| Pretendard | 무료 (상업용 가능) | 웹·앱 UI에 적합, 미려한 곡선 |
| 배민 한나체 | 무료 | 캐주얼한 게임 UI에 적합 |
| Noto Sans KR | 무료 (Google) | 다양한 두께 지원, 범용성 높음 |

2. Window → TextMEshPro → Font Asset Creator 클릭

3. TMP Font Asset Creator 창이 열리면 아래 설정을 확인합니다.
- Source Font 입력란에 위에서 추가한 폰트 파일(.otf 혹은 .ttf)를 넣어줍니다.
- Character Set을 Custom Range로 설정하고 아래 이미지와 같이 설정합니다.
- Generate Font Atlas 버튼을 클릭하여 생성을 완료하고(다소 시간 소요), 생성이 완료되면 Save 버튼을 클릭하여 프로젝트에 저장합니다.

| 설정 항목 | 권장 값 | 설명 |
| Font Source | 선택한 폰트 파일 | 적용할 폰트 지정 |
| Font Atlas Resolution | 4096 x 4096 | 한글 전체 문자 포함을 위해 넉넉히 설정 |
| Character Set | Custom Characters or Unicode Range | 직접 한글 입력 또는 유니코드 범위 사용 |
| Rendering Mode | SDF (Signed Distance Field) | 텍스트 품질 유지용 권장 옵션 |
추천 유니코드 범위(Character Set)
- 32-126, 44032-55215, 12593-12687, 8200-9900
각 범위 상세 설명
- 기본 영문 + 숫자 + 기본 특수문자
- 범위: 32-126 (U+0020 - U+007E)
- 내용: 스페이스(공백), 숫자, 영문 대소문자, 그리고 키보드에 있는 대부분의 기본 특수문자(!, @, #, $, %, &, *, (, ), -, =, + 등)를 포함합니다.
완성형 한글
- 범위: 44032-55215 (U+AC00 - U+D7AF)
- 내용: '가'부터 '힣'까지 현대 한글로 표현 가능한 모든 11,172자의 완성형 글자를 포함합니다. 이전에 알려주신 55203이 아닌 55215 가 정확한 끝 범위입니다.
한글 자모
- 범위: 12593-12687 (U+3131 - U+318F)
- 내용: 'ㄱ', 'ㄴ', 'ㅏ', 'ㅑ' 등 단일 자음과 모음을 포함합니다. 채팅 입력창처럼 자모가 독립적으로 표시되어야 하는 경우에 필수적입니다. 추천 범위는 일반적인 '한글 호환 자모' 블록 전체를 포함하도록 조금 더 넓게 잡았습니다.
자주 사용하는 특수문자
- 범위: 8200-9900 (U+2008 - U+26AC)
- 내용: 각종 공백 문자, 문장 부호(…, ‘, ’, “, ”), 통화 기호(₩, €), 글머리 기호(•), 화살표(→), 도형(■, ◆), 기타 기호(★, ♥) 등 게임이나 앱에서 자주 사용되는 다양한 특수문자를 포함합니다.
4. TMP 텍스트에 한글 폰트 적용
- 아래 이미지를 참고하여 Hierarchy에서 생성된 TextMeshPro 객체를 선택하고 Inspector 창에서 Font Asset 항목에 방금 만든 한글 폰트 에셋을 드래그합니다.

- 여기까지 완료하면 기존에 한글이 깨지거나 ‘□’(네모)로 표시되던 텍스트 박스가 한글로 잘 표시되는 것을 확인할 수 있습니다.
폰트 최적화 팁
- Atlas Resolution은 너무 높게 설정하면 메모리 사용량이 커집니다. 필요한 글자만 포함하는 Custom Characters 방식을 권장합니다.
- Dynamic Font Asset 옵션을 켜면 런타임 중 새 문자를 자동 생성하지만, 모바일 빌드에서는 성능 저하가 생길 수 있습니다.
- 여러 씬에서 같은 폰트를 쓸 예정이라면 Resources 폴더에 보관해 공용으로 관리하세요.
자주 발생하는 문제 해결방안
| 문제 | 원인 | 해결 방법 |
| 한글이 ‘□’로 표시됨 | 폰트에 한글이 포함되지 않음 | 한글 지원 폰트 사용 또는 Unicode Range 설정 |
| 일부 글자만 안 나옴 | Atlas에 포함되지 않은 글자 | Font Asset Creator에서 범위 확장 후 재생성 |
| 텍스트 깨짐 | Resolution이 너무 낮음 | Font Atlas Resolution을 높여 재생성 |
'Unity' 카테고리의 다른 글
| [Unity] Unity 개발을 위한 Visual Studio 2022 설치 가이드 (0) | 2025.11.27 |
|---|---|
| [ML-Agents] Render Texture Sensor – 사용자 정의 시각 정보를 학습하는 센서 (0) | 2025.05.14 |
| [ML-Agents] Buffer Sensor – 동적으로 변하는 객체를 추적하는 센서 (0) | 2025.05.14 |
| [ML-Agents] Audio Sensor – 소리를 듣는 에이전트 만들기 (0) | 2025.05.14 |
| [ML-Agents] Grid Sensor – 환경을 격자로 나눠 인식하는 센서 (0) | 2025.05.14 |