Unity TextMeshPro
많은 유니티 강의들이 UI를 통해 텍스트를 보여줄 때 UntiyEngine.UI의 Text 컴포넌트를 활용한다.
하지만 유니티 에디터에서는 Text를 레거시로 분류하고 있는데 레거시가 레거시가 되는데는 이유가 있지 않겠는가?
유니티 공식 홈페이지에서 성능에 별 차이 없이 더 많은 기능을 제공하는 TextMeshPro를 추천하니 사용법을 간단히 알아봤다.
TextMeshPro는 컴포넌트를 처음 만들면 관련 리소스들을 임포트 하도록 팝업 UI가 등장하고 임포트 하게되면 기본 폰트로 설정이 되어있다. 이 폰트는 한글을 지원하지 않으니 한글폰트를 새로 만들어야 한다.
TextMeshPro에서 쓰일 폰트를 만드는 방법은 다음과 같다.
에디터 창에서 Window - TextMeshPro - Font Asset Creator 를 눌러 폰트 생성창을 띄운다.
여기서 소스로 사용할 ttf 폰트 파일을 넣어준다. 폰트 파일은 검색하면 무료로 사용 가능한 폰트들이 많이 있다.
그다음 여러 옵션들이 있는데 자세한 옵션 설명은
https://docs.unity3d.com/Packages/com.unity.textmeshpro@4.0/manual/FontAssetsCreator.html
Font Asset Creator | TextMeshPro | 4.0.0-pre.2
Font Asset Creator The Font Asset Creator converts Unity font assets into TextMesh Pro font assets. You can use it to create both Signed Distance Field (SDF) fonts and bitmap fonts. When you create a new font Asset, TextMesh Pro generates the Asset itself,
docs.unity3d.com
해당 문서에서 살펴볼 수 있다.
지금은 Sampling Point Size 는 자동으로 Padding은 4나 5정도 값을 많이 사용하는 것 같다.
Packing Method는 빠름 해상도는 4096 4096으로 지정하자.
그다음 캐릭터 셋은 Custom Range로 지정하고 32-126,44032-55203,12593-12643,8200-9900 으로 설정해주자.
영어 범위 : 32-126
한글 범위 : 44032-55203
한글 자모 : 12593-12643
특수 문자 : 8200-9900
해당 범위는 숫자, 영문자 등의 범위, 유니코드에서 완성형 한글 11172자와 한글 자모, 특수문자의 범위다.
렌더 모드는 기본으로 SDFAA를 놓고 Generate Font Atlas를 통해 폰트를 모아놓은 파일을 만들고 save로 저장해서 폰트 파일을 생성한다.
이렇게 생성된 폰트를 TextMeshPro 컴포넌트에 사용하면 한글이 정상적으로 표시된다.
이제 이 컴포넌트에 내용을 Script를 통해 입력해본다.
namespace는 TMPro 를 사용하고 클래스는 TextMeshProUGUI이다.
내용을 입력할 때는 해당 객체를 생성한 뒤 객체.text = "" 와 같이 설정할 수 있다.
using TMPro;
public TextMeshProUGUI text;
public void SetText(string inputText)
{
text.text = inputText;
}
이외에도 간단한 사용법에 대해 정리된 블로그 글 하나가 있다 필요하면 참고하자.
[UNITY] TextMesh Pro 간단 사용법
https://docs.unity3d.com/Packages/com.unity.textmeshpro@3.0 TextMesh Pro User Guide | TextMeshPro | 3.0.6 TextMesh Pro User Guide Overview This User Guide was designed to provide first time users of TextMesh Pro with a basic overview of the features and fu
hyeokjunjjang.tistory.com