유니티 TMP 한글 - yuniti TMP hangeul

유니티 텍스트메시프로 한글이 네모로 나올 때 대처 방법 What to do when Unity TextMeshPro(TMP) Korean comes out as a square, Unity TMP TTF to SDF

유니티 TMP에서 한글을 입력하니 저렇게 네모로 나온다.

유니티 TMP 한글 - yuniti TMP hangeul

사용한 폰트는 '배달의민족 주아체' 인데, 이 폰트의 확장자가 기본적으로 TTF인데 TMP에서 사용을 하려면 SDF타입으로 변경하는 작업이 필요하다. window > textmeshpro > font asset creator (기본적으로 유니티에서 제공하는 text mesh pro 에셋을 download and import 했다는 가정하에서 진행)

유니티 TMP 한글 - yuniti TMP hangeul

font asset creator 에서 배달의민족 주아체를 불러온다 (BMJUA_ttf) 주의할 점은 무료이든 유료이든 어쨌든 한글폰트중에 폰트이름이 한글로 된 파일이 있는데 그러면 에러가 난다. 폰트이름이 한글인 폰트인 경우 임의로 영어로 바꾸어 주도록 하자. 계속해서, sampling point size 등등은 그냥 default로 한 상태에서 character set는 ascii로 바꾸고, render mode는 일단 그냥 SDF로 한다(sdf 아래꺼중 아무거나 해도 되는데 추후 수정가능). 이렇게 한 상태에서 generate font atlas 버튼을 눌러 폰트아틀라스를 생성하고 난 후 save버튼을 눌러 .asset 파일을 저장한다.

유니티 TMP 한글 - yuniti TMP hangeul

BMJUA_ttf SDF.asset 파일을 저장

유니티 TMP 한글 - yuniti TMP hangeul

배달의민족 주아체가 있던 폴더에 BMJUA_ttf SDF 파일이 생성된 걸 볼수 있다. 인스펙터의 TMP 컴포넌트의 font asset에다가 방금 만든 BMJUA_ttf SDF를 연결해준다.

유니티 TMP 한글 - yuniti TMP hangeul

그래도 여전히 한글이 보이지 않지만, 당황하지않고

유니티 TMP 한글 - yuniti TMP hangeul

Project창에서 BMJUA_ttf SDF를 선택하면, Inspector창에 다음과 같이 나오는데

유니티 TMP 한글 - yuniti TMP hangeul

generation settings에서 atlas population mode를 Dynamic으로 바꿔준다.

유니티 TMP 한글 - yuniti TMP hangeul

그리고 필수는 아니지만 sampling point size도 넉넉하게 90으로 해주고, atlas width, atlas height도 넉넉하게 4096으로 맞춰준다. 그리고 apply버튼 클릭. 자신의 상황에 맞게 조절하길.

유니티 TMP 한글 - yuniti TMP hangeul

그러면 짜잔. 이렇게 한글이 잘 표현이 되는데,

유니티 TMP 한글 - yuniti TMP hangeul

자세히 보면 글자가 자글자글 하다.

유니티 TMP 한글 - yuniti TMP hangeul

처음에 언급했듯이 generation settings의 atlas render mode를 SDF로 한 걸 SDFAA로 바꿔준다. SDF ~ SDFAA 까지 하나 하나씩 변경해보면 조금씩 변하는걸 볼 수 있는데, 그냥 취향대로 자기 맘대로 하면 될 것 같다.

유니티 TMP 한글 - yuniti TMP hangeul

매끈하다. 완성!

유니티 TMP 한글 - yuniti TMP hangeul

끗!

www.youtube.com/watch?v=nPoCOBZCaBw

유니티 TMP 한글 - yuniti TMP hangeul