Unity에서 Text 쓰려하면 이제 어느순간 TextMeshPro가 기본이 되어 있다
기존 사용하던 Text를 쓰려면 Legacy로 들어가야 하는데 안타까운건 TextMeshPro를 그냥 쓰면 영어는 괜찮지만 한글은 깨진다는 것이다 (한글을 깨트릴거면 폰트 좀 바꿔줘라!!)
알다시피 문제는 폰트때문이다.
TextMeshPro에서 한글을 쓰기 위해선 폰트를 바꿔주어야 한다
기본 폰트인 LibersSans는 한글이 깨지니 새로운 폰트를 구해야 한다
필자의 경우 찾아보다 넥슨 메이플스토리 서체가 있길래 그걸 사용했다
https://maplestory.nexon.com/Media/Font
메이플스토리 서체는 개인 및 기업 사용자를 포함한 모든 사용자에게 무료로 제공되며 자유롭게 사용 및 배포하실 수 있습니다.단, 임의로 수정, 편집 등을 할 수 없으며 배포되는 형태 그대로 사용해야 합니다.
무료로 제공되고 자유롭게 사용 및 배포 할 수 있다고 하니 이 서체로 선택했다(글자도 이쁘다)
해당 사이트에서 해당하는 폰트를 다운받고 유니티에 import 한다
import했다고 해서 바로 이 폰트를 TextMeshPro에서 사용할 수 있는건 아니다 변환을 해줘야 한다
- 폰트 변환
Window > TextMeshPro > Font Asset Creator 로 들어가 Font Asset Creator 창을 연다
앞에서 Import한 폰트를 Source Font에 할당하고 Sampling Point Size는 Auto Sizing으로 Atlias Resolution은 4096x4096으로 설정해 준다
그리고 난 후 Generate Font Atlas 버튼을 클릭하고 Save as 를 클릭하여 원하는 위치에 저장해 준다
변환한 폰트는 앞에 이미지가 사각형 안에 파랑색 F 로 바뀌어 생성되어져 있다
이제 이 폰트 파일을 사용하면 되는데 여기서 끝이 아니다 이 상태 그대로 사용하며 여전히 글자는 깨져있는걸 볼 수 있다
- TextMeshPro Font 설정
생성된 폰트에 들어가면 설정 값들을 볼 수 있는데 여기서 두가지를 만져줘야 한다
Atlas Population Mode를 Dynamic으로 바꿔주고 Sampling Point Size를 60으로 바꿔준다
Dynamic으로 바꿔주는 이유는 Static으로 되어져 있으면 Font Asset Creator에서 처음 생성될 때 정의된 글자만 사용할 수 있게 새로운 글자에 대해서는 사용할수 없어 새로운 글자에서도 사용할 수 있도록 Dynamic으로 바꿔준다
이렇게 해서 생성된 폰트를 TextMeshPro에 할당해 사용하면 한글이 더이상 깨지지 않고 편하게 사용할 수 있게 된다
'Unity' 카테고리의 다른 글
iOS에서 uaal로 unity를 library로 사용하기 (0) | 2025.01.27 |
---|---|
[Unity] 스크롤 가능한 텍스트 영역 만드는 방법 (1) | 2025.01.16 |
[Unity] AddressableAsset 사용방법 (7) | 2024.12.12 |
[Unity] AI Navigation System 사용방법 (8) | 2024.12.11 |
[Unity] NavMesh Surface Bake를 했는데 Scene View에서 파란색 표면이 보이지 않는 이슈 (6) | 2024.12.11 |