[TIL_20_2] Unity TextMeshPro 한글 폰트 깨짐 해결 및 폰트 추가

H·2024년 1월 23일
0

유니티를 이용해서 한글을 넣는데 깨짐..

이렇게 네모처럼 나온다

한글이 안써지는 이유가 뭘까 하며 찾아보니

TextMeshPro(TMP) 이녀석이 기본 폰트가 한글을 지원하지 않아 한글이 □로 깨져서 나온다고 한다!

그럼 어떻게 해야하나?

1. 폰드 다운로드

구글에서 무료 폰트를 검색해서 원하는 폰트를 다운로드 받자.
폰트링크

다운을 받고 압축을 푸니!!

요렇게 나온다. 이중에서 ttf 확장자 파일을
사용할 프로젝트 폴더-> Assets -> TextMesh Pro -> Fonts에 넣자!
그리고 유니티로 들어가면 자동으로 임포트를 해준다.

2. TMP용 폰트 생성

1번만 하면 되는줄 알았는데.. TMP용 폰트 생성도 해야 된다고 한다ㅠ
임포트가 끝나면 메뉴 바 -> Window -> TextMeshPro -> Font Asset Creator로 이동!

그러면 이 화면이 나오는데, 여기서 내가 다운받은 글꼴을 선택!

폰트마다 사이즈 조절을 다양하게 할수 있는것 같은데.. 나는 잘모르겠으니 오토사이징을 선택한후 Generate Font Atlas를 눌러보았다.

폰트 생성이 완료되면 Save를 눌러서 Assets -> TextMesh Pro -> Fonts에 폰트를 저장!

3. TMP 폰트 적용 (드디어 마지막 단계 캭)

폰트 적용을 위해서 유니티로 다시 돌아가서!
폰트 크리에이터 끄고
생성한 TMP 오브젝트의 Inspector 창-> TextMeshPro - Text (UI)에 있는 Font Asset을 변경하면 끝이라고 하는데...

왜 안돼?

그래서 더 찾아보니
Font Asset을 선택해서 Atlas Population Mode를 Dynamic으로 변경해야 한다!

3-1. 그래도 안된다?

3까지만 하면 된다며... 근데 안되서 몇 시간째 컴퓨터와 대화중..에 구원자분을 만남!
케릭터셋을 다시 지정해서 만들기

메뉴 바 -> Window -> TextMeshPro -> Font Asset Creator 로 들어가는거 동일

케릭터셋에서 ASCII 요넘을!! -> Custom Range로 바꾸고 레인지를 직접 입력

1초 상식

ASCII녀석은 영문 알파벳을 사용하는 대표 문자인코딩이다 보니 한글을 포함시키는 범위가 설정이 안되어 있을수도 있다.
그래서 한글을 포함시키기 위한 범위를 Character Sequence(Decimal)칸에 직접 때려 넣어준다!

한글 포함시키는 범위

32-126,44032-55203,12593-12643,8200-9900

그리고 Genrate Font Atlas! (시간 좀 걸림)
만들고 나서 세이브 하면??

된다 하... 얗게 불태웠다

profile
IT 서비스 구현 및 게임에 관심이 많습니다.

0개의 댓글