검색해서 나오는 방법을 사용하여 유니코드 폰트(나눔 고딕)를 설치하고 TMP(TextMeshPro)로 변환했는데 한글이 계속 깨집니다.
레거시(Legacy text)는 잘만 나옵니다.
폰트 자체가 잘못된 게 아니라 생성이 잘못됐다는 거죠.
유니코드 폰트의 경우 폰트 범위를 지정하면 되는 경우가 있으니 해봅시다.
'Character Set'를 'Unicode Range (Hex)'로 설정합니다.
그러면 'Character Sequence (Hex)'칸이 생기는데 이 칸에 아래와 같이 범위를 설정합니다.
가-힣, 초성, 중성, 종성의 범위는 다음과 같습니다.
AC00-D7AF,1100-1112,1161-1175,11A8-11FF
아니면
AC00-D7AF, 1100-11FF
이제 완성 한글은 잘 나오는데 초성, 중성, 종성이 안 나옵니다.
그래서 검색해 보니 '호환 한글'이라는 게 있습니다.
'호환 한글' 범위인 '3131-318F'로 지정해 봅시다.
AC00-D7AF,3131-318F
이제 초성, 중성, 종성도 잘 나옵니다.
만약 다른 문자도 필요하다면 위키피디아를 참고하면 됩니다.
참고 : 위키백과 - 유니코드 영역
자주 사용하는 유니코드 범위는 아래 링크를 참고하면 됩니다.
참고 : 만사오케이프로 - Unity 로컬라이징 TextMeshPro TMP_Font 유니코드 범위
다른 사람들은 유니코드 그냥 통으로 읽어도 되는 것인가?
아니면 버전에 따라서 동작이 다른 것인가?
라는 고민을 하게 만드는 문제였습니다.