유니티에서 사용하는 문자 컴포넌트인 TextMeshPro는 폰트 파일 자체로 사용할 수 있는 것이 아니라 따로 폰트를 애셋으로 만들어주는 과정을 거쳐야 폰트로 사용할 수 있습니다.
이번 포스팅에서는 한글 폰트를 애셋으로 만들어 TextMeshPro에 적용하여 사용할 수 있는지 알아보겠습니다.
먼저 자신이 원하는 한글 폰트 하나를 준비합니다. 그리고 폰트 파일을 유니티에 Import 합니다.

여기서 주의할점은 한글폰트 파일 이름이 영어로 된 것만 사용하는 것이 좋다는 것입니다. 파일 이름이 한글로 되어 있거나 특수 기호가 들어갔을 경우 오류가 나는 일이 자주 발생합니다. 이럴 경우를 대비해서 Rename을 통해서 파일 이름을 영어로 바꿔주시는 것이 좋습니다.
그 다음 유니티 window창을 열어서 TextMeshPro 메뉴 안에 있는 Font Asset Creator 버튼을 누릅니다.

그러면 Font Asset Creator 창이 활성화 됩니다.

1. Source Font File 에 앞에서 임포트 했던 폰트 파일을 끌어다 놓습니다.
2. Sampling Point Size를 설정해줍니다. 50-70정도로 해주셔도 됩니다. 문제가 생기면 나중에 다시 지정해야 하기 때문에 적당히 하고 넘어가시면 됩니다.
3. Atas Resolution 은 가로 세로 해상도라고 생각하시면 되는데, 자신이 제작하는 게임의 해상도를 생각해서 지정해주세요.
4. Character Set 탭에서 Custom Range로 변경해 주세요.
5. Charater Sequence에 다음 코드를 입력하세요. 32-126, 44032-55203, 12593-12643, 8200--9900
6. Geneate Font Atas를 눌러주세요.

그러면 위의 그림과 같이 되는데, Save 버튼을 눌러 원하시는 폴더에 저장하시면 됩니다.

폰트 폴더에 저장했더니 Hanbit SDF 애셋이 생성되었습니다.

폰트 애셋 시험을 위해 Hierarchy창에 이미지 오브젝트를 생성하고 그 자식으로 Text-TextMeshPro 오브젝트를 생성합니다.
TextMeshPro 오브젝트의 인스펙터 창의 TextMechPro 컴포넌트의 색을 검은색으로 바꿔줍니다.
TextMeshPro 오브젝트의 인스펙터 창의 TextMechPro 컴포넌트의 Text Input 칸에 한글을 입력해 보겠습니다.

유니티에서 제공하는 기본 폰트로 설정 되어 있기 때문에 한글이 박스로 표현됩니다.
그럼 TextMeshPro 오브젝트의 인스펙터 창의 TextMechPro 컴포넌트의 Font Asset에 앞에서 생성한 한글 폰트 애셋을 드래그 앤 드롭으로 넣어줍니다.

그런데 변환이 되지 않습니다. 그럼 앞에서 생성한 폰트를 선택해줍니다.그럼 인스팩터 창이 바뀌면서 폰트 애셋의 정보가 나옵니다.

폰트 애셋 인스펙터 창에서 Generation Settings 탭을 조정해야합니다.
1. Atas Population Mode 를 Dynamic으로 변경해줍니다.
2. 그리고 이 부분이 중요한데요. Sampling Point Size를 변경해줍니다. 저는 50 정도에서 100정도까지 그 사이로 입력했는데, 그럼 게임뷰 창에 폰트가 박스가 아닌 한글로 나오는 것을 확인하실 수 있을 겁니다. 안나오면 적당한 사이즈를 입력하면 서 게임뷰 창에 한글 폰트가 제대로 나오는지 확인하시면 되겠습니다.
3. 한글폰트가 제대로 나오는 사이즈를 확인했다면 Apply 버튼을 눌러 적용시켜줍니다.

그렇게 했더니 이제 한글 폰트가 제대로 적용이 됩니다.
감사합니다.
'유니티 기초 스킬' 카테고리의 다른 글
| Null Reference Exception를 줄일 수 있는 연산자들(?. , ?[], ??, ??=) (0) | 2024.05.01 |
|---|---|
| ? 조건연산자(삼항연산자) (2) | 2024.05.01 |
| 중복없는 랜덤 숫자 추출하기 (0) | 2024.04.25 |