안녕하세요. BlockDMask입니다.
유니티 최신 LTS 버전인 2021.3.X 버전으로 작업을 하던중 디폴트 text 가 UGUI 텍스트가 아닌 Text Mesh Pro 로 변경되어있는걸 알게 되었습니다.
그래서 Text Mesh Pro 로 한글을 작성했더니.. 아니 이게.. 뭔 사각형 언어가 나오는게 아니겠습니까..
이리 저리 검색해서 알아본 결과 Font 세팅을 새롭게 해주면 되더군요
지금부터 그 방법을 하나씩 알려 드리려 합니다.
<목차>
1. 유니티 Text Mesh Pro 전용 폰트 생성
2. 유니티 Text Mesh Pro 폰트 적용 및 사용
1. 유니티 텍스트 메시 프로 한글용 폰트 생성
1-1) 원하는 폰트 다운받아서 Fonts 폴더에 넣기
유니티 프로젝트를 생성해줍니다.
그 후 원하는 폰드를 다운받아 줍니다.
저는 넥슨에서 제공해주고 있는 메이플 스토리 폰트를 예시로 한번 진행해보겠습니다.
- 메이플 스토리 폰트 [다운로드]
위 링크에서 윈도우용 TTF 파일을 다운로드 하면 됩니다.
해당 파일을 다운로드 한 뒤 압축을 풀면 아래와 같은 두개의 TTF 파일이 존재합니다.
Maplestory Bold.ttf
Maplestory Light.ttf
유니티 프로젝트의 Assets > Text Mesh Pro > Fonts 폴더에 넣어줍니다.
혹시 Assets에 Text Mesh Pro 폴더가 없으면,
하이라키창에 UI-> Text 를 생성하게 되면 아래와 같은 창이 뜨게 됩니다.
TMP Importer 창이 뜬다면 아래 "Import TMP Essentials" 를 눌러서 텍스트 메시 프로를 임포트 해줍니다.
1-2) TMP 전용 폰트 생성
이제 TMP 전용 폰트로 만들어 보겠습니다.
유니티 Window > TextMeshPRo -> Font Asset Creator 를 눌러줍니다.
소스 폰트 파일 (Source Font File)에 변경하고자 하는 TTF 폰트를 넣어줍니다.
우리는 Maplestory Bold 를 넣고, 다른 세팅은 아래와 같이 세팅해 줍니다.
Source Font File -> Maplestory Bold
Sample Point Size -> Auto Sizing
Atlas Resolution -> 4096, 4096
Render Mode -> SDFAA
옵션을 다 넣은 다음에 Generate Font Atlas 를 적용하면 아래와 같이 화면이 변경 됩니다.
Save 를 눌러서 Assets > Text Mesh Pro >Fonts 폴더에 저장해줍니다.
2. 유니티 텍스트 메시 프로 한글 폰트 적용 및 사용 방법
2-1) Unity Text Mesh Pro 한글 폰트 적용 방법
1번을 잘 따라오셨으면 아래와 같이 Assets > Text Mesh Pro > Fonts 폴더에 해당 파일이 생성되어있을 것 입니다.
이 파일을 선택해서 옵션을 바꿔줄 것 입니다.
이 폰트 파일을 누르고 인스펙터창 (Inspector)을 보면
아래쪽 Generation Setting 부분에 Atlas Population Mode 에서 Dynamic 을 선택해 주고
Sampling Point Size를 60 정도로 맞춰 줍니다.
(이부분은 각 폰트마다 적절한 사이즈를 넣어야합니다.)
그리고 Apply 를 눌러서 적용해줍니다.
이제 하이라키 창에서 Text를 생성해서 폰트(아래 Font asset 쪽)를 우리가 새로 만든 폰트로 적용해주고
한글을 넣어주면 아래와 같이 한글이 잘 나오는 것을 볼 수 있습니다.
2-2) 코드단에서 사용하는 방법
using TMPro; 네임스페이스를 사용해야하고
데이터 타입(컴포넌트 클래스)는 TextMeshProUGUI 입니다.
예제 코드를 보면 아래와 같이 using TMPro; 를 선언해주고, TextMeshProUGUI로 텍스트 컴포넌트를 받아옵니다.
using UnityEngine;
using TMPro;
public class Example : MonoBehaviour
{
[SerializeField] private TextMeshProUGUI textTitle;
private void Start()
{
textTitle.text = "BlockDMask 블로그 입니다.";
}
}
텍스트를 연결해서 프로그램을 실행시켜 보면 아래와 같이 텍스트가 잘 적용 된것을 볼 수 있습니다.
이상으로
유니티 한글표기 방법과 사용법에 대해서 알아보았습니다. 감사합니다.
'<개인공부> > [Unity]' 카테고리의 다른 글
[Unity] 유니티에서 ?.(널 조건부 연산자)가 제대로 동작하지 않는 이유 (0) | 2025.01.05 |
---|---|
[유니티] vs code 디버깅 (1) | 2022.05.15 |
[유니티] 랜덤 함수 Random.Range() (2) | 2022.05.11 |
[유니티] 로그캣(logcat)을 이용한 안드로이드 디버깅 방법 (0) | 2022.05.09 |
[유니티] 씬 전환, 씬 이동, Scene 전환 (SceneManager) (0) | 2021.09.30 |