여기서는 한글 사용하는 방법에 대해 다루지 않습니다.
다른 블로그에서 찾아보세요.
여기서는 Dynamic& 인코딩 타입을 설정했는데도 깨지는 경우
즉 다른 한글은 잘 나오는데 특정한 상황에서 출력되는 한글들이 깨지는 경우와 해결법을
기록해놓으려고 적는 것임.
iOS환경에서 발생한 문제다.
TMP가 한글을 잘 써지는데 유독 특정 상황에서의 팝업 메시지가 한글이 깨지는 것이었음.
폰트의 설정문젠가 싶었지만, 그게 아니었다.
원인은 바로 cs파일의 인코딩 타입문제.
인코딩이 utf-8로 설정되지 않은 cs파일에서 출력하도록 명령한 텍스트들은 깨지면서 출력됐다.
그래서 notepad++다운받고 일일이 문제의 파일들을 인코딩 변환했더니 정상 출력됐다.
아 이거 때문에 시간 낭비 개 오지게 했다.
이 증상을 알 수 있는 힌트들
1.이 문제가 발생한 cs파일들은 partial class파일들이었다. 이게 문제가 있는 것 아닐까 싶다.
2.문제 있는 파일들은 iOS 유니티 에디터에서 인스펙터로 읽으면 한글이 깨져서 읽힌다.
ps.아니 근데 같은 환경에서 작업한 파일들인데 왜 쟤네만 인코딩 타입이 달랐대?
하 참 미치겠네
TextMeshPro 기본 사용법(설치/한글 폰트 적용)
* 해당 글은 Unity 2019.4.7f1(LTS) 버전으로 작성되었습니다.
UGUI에서 지원하는 Text말고 좀 더 깔끔하고 다양한 기능을 사용할 수 있는 기능이 바로 TextMeshPro이다.
TextMeshPro는 Unity Package Manager에서 설치할 수 있다.
요즘은 기본적으로 새 프로젝트가 만들어질때 자동으로 설치되었으니 버전이 낮을 경우 찾아서 설치하면 된다.
이렇게 TextMeshPro를 사용하기 위한 준비동작은 마쳤다.
이제 캔버스에 사용해보자.
기본폰트에는 영어만 지원하기 때문에 한글을 입력할 경우 저런 식으로 박스 모양으로 나온다.
한글을 쓰기 위해서 기본 폰트 말고 새로운 폰트를 다운로드하여서 적용해보자.
괜찮은 무료 폰트들은 //fonts.google.com/
에서 다운받을수 있다.
Google Fonts
Making the web more beautiful, fast, and open through great typography
fonts.google.com
원하는 폰트를 유니티 프로젝트에 넣은 뒤에 TextMeshPro 폰트를 만들어 보자.
Source Font File - 만들고 싶은 폰트를 선택한다.
Sampling Point Size - Auto Sizing과 Custom Size가 있는데 원하는 크기의 폰트 사이즈를 선택하여 사용하면 된다.
Padding - Atlas를 생성할 때 글자끼리에 패딩 값을 나타낸다.
Packing Method - Fast와 Optimum이 있다. 대부분 Fast로 설정 후 사용한다.
Atals Resolution - 폰트 Atals에 크기를 설정한다.
Character Set - Atals에 넣을 폰트를 선택한다.
Render Mode - Atlas 텍스쳐의 품질을 선택한다. 고품질일수록 생성되는데 많은 시간이 소요된다.
우선 우리는 한글과 영어 그리고 특수문자들을 입력할 수 있는 폰트를 만들어 볼 것이다.
영어 범위 32-126
한글 범위 44032-55203
한글 자모음 12593-12643
특수 문자 8200-9900
왼쪽 하단에는 생성한 폰트의 정보가 나와있다.
선택된 폰트에 없는 글자들은 Missing 되었다고 표시를 해준다.
해당 폰트를 저장한 후 다시 한글을 작성해보자.
아까와 다르게 한글이 잘 나오는 걸 확인할 수 있다.
TextMeshPro 설치 방법과 한글 적용방법까지 알아보았다.