?! 제작 중에 텍스트 메쉬 프로(TMP)에서 한글을 입력하자 게임 화면에서 깨져서 출력됐다.
알아보니 유니티 자체 폰트 LiberationSans 가 한글을 지원하지 않나보다..
이전에 UGUI 에서는 한글 지원 폰트를 적용하면 됐던 것 같아서 한글을 지원하는 폰트를 넣어보려 했는데
폰트도 적용이 되질 않는다.
알아보니 평소에 기본적으로 사용하는 ttf, otf 같은 파일들은 바로 적용이 되지 않는다고 한다..
TMP 에서 사용이 가능한 글꼴 에셋으로 바꿔줘야 한다.
찾아보다가 아래 방법으로 해결했다.
1. 먼저 한글을 지원하는 폰트를 준비한다. (원하는 폰트로)
2. 상용한글 텍스트 파일을 준비한다.
아래에서 다운받았다.
(파일을 눌렀는데 한글이 아닌 다른 글자(한자)들이 써진 사이트로 넘어가면 우클릭 눌러서 다른이름으로 저장하고
텍스트 파일로 저장하자, 파일 열면 한글로 뜬다.)
https://phlm7th.tistory.com/45
3. 유니티에서 글꼴 에셋 크리에이터(Font Asset Creator) 를 사용해 글꼴 에셋으로 만들었다.
상단 바의 Window - TextMeshPro - Font Asset Creator 를 선택하자
그럼 이런 창이 뜬다.
여기서 Source Font File 에 준비한 폰트파일을 드래그해서 넣고.
Atlas Resolution 을 둘 다 4096으로,
Charactor Set 을 Custom Charactors 로 선택하자.
Custom Charactor List 에 2번에서 받아놓은 텍스트 파일의 내용을 복사해서 붙여넣는다.
모두 설정하면 이렇게 된다.
이제 아래의 Generate Font Atlas 를 누른다.
이렇게 되면 아래의 Save 를 눌러 저장해주자.
폰트 에셋 파일이 생긴 것을 볼 수 있다.
이제 이걸 인스펙터에서 적용시켜주면
짠 이렇게 한글이 잘 나온다.
+ 추가 내용, 영어나 특수문자 폰트 미적용 시
위의 상용 한글만 사용해서 에셋 파일을 생성 시 선택한 폰트의 영어는 폰트가 적용되지 않는다.
따라서 영어까지 폰트를 적용하고 싶다면 아래와 같이 설정하자.
이전과 같이 폰트파일을 넣는다.
*폰트파일명이나 파일 저장된 폴더명이 한글이면 오류가 난다. 영어로 바꿔주자
Sampling Point Size 는 Auto 로,
Padding 을 원하는 대로 설정하고 Package Method 는 빠름,
Atlas Resolution 은 4096, Character Set 을 Custom Range 로 설정해준다.
그리고 Character Sequence 에 32-126,44032-55203,12593-12643,8200-9900 을 넣어준다.
32-126 은 영어 알파벳 범위,
44032-55203 은 한글 범위,
12593-12643 은 한글 자모,
8200-9900 은 특수문자 범위이다.
이와 같이 설정 후 Generate Font Atlas를 눌러 폰트를 변환하고 Save 를 눌러 저장하자.
사실상 이렇게 안할 이유가 없다..(오류만 안나면)
'Unity' 카테고리의 다른 글
[Unity] 게임 개발 일지 | FPS 서바이벌 1 (0) | 2024.03.12 |
---|---|
숫자 퍼즐 게임 - Match It ! Match 10! (0) | 2021.08.08 |