TextMeshPro 를 사용하면서 Generation Setting 을 아무리 수정해도 깨지는 현상을 해결 할 수 없어서 구글링해서 찾은 방법이다.
The character with Unicode value \u3134 was not found in the [LiberationSans SDF] font asset or any potential fallbacks. It was replaced by Unicode character \u25A1 in text object [Text].
UnityEngine.Debug:LogWarning (object,UnityEngine.Object)
TMPro.TextMeshProUGUI:SetArraySizes (TMPro.TMP_Text/TextProcessingElement[]) (at ./Library/PackageCache/cohttp://m.unity.ugui/Runtime/TMP/TextMeshProUGUI.cs:2005)
유니코드 값이 \\u3134인 문자는 [LiberationSans SDF] 글꼴 자산이나 잠재적인 폴백에서 찾을 수 없습니다. 텍스트 객체 [Text]에서 유니코드 문자 \\u25A1로 대체되었습니다. UnityEngine.Debug:LogWarning (object, UnityEngine.Object) TMPro.TextMeshProUGUI:SetArraySizes (TMPro.TMP_Text/TextProcessingElement[]) (./Library/PackageCache/cohttp://m.unityugi/Runtime/TMP/TextMeshProUGUI.cs:2005) 에서 확인할 수 있습니다
일단 유니티안에서 다음과 같이 경고 메세지가 뜨는 것을 가져왔는데 다음과 같이 되어있었고 유니코드 값이 문제라는 것을 파악했다
일단 문제의 폰트를 다시 Font Asset Creator 를 사용해서 다시 생성
- Character Set을 "Unicode Range (Hex)"로 선택.
- 범위를 32-126,44032-55203,12593-12643,8200-9900로 입력.
- Generate Font Atlas를 클릭하여 폰트 생성.
Charactor Sequence 안에 다음과 같이 숫자를 작성해주고 Generate Font Atlas 버튼을 눌러주면 된다
시간이 좀 걸리지만 그래도 잘 생성된 것을 확인 할 수 있다. 그리고 아래에 저장 까지 하면 된다
32-126,44032-55203,12593-12643,8200-9900
유니코드(Unicode) 범위를 나타내며, 텍스트 데이터를 표현할 때 사용되고 각 범위는 특정 문자 집합을 나타낸다.
Unity의 TextMeshPro에서 특정 폰트 자산을 생성할 때 포함할 문자 범위를 설정하기 위해 사용한다
32-126: 영어와 기본 특수문자를 위한 필수 범위.
44032-55203: 한글을 표시하려면 반드시 포함.
12593-12643: 한글 자모를 사용하는 특정 경우에 유용.
8200-9900: 서식 및 특수문자 처리를 위한 추가 범위.
각 범위 설명
더보기
32-126
- 설명: ASCII 문자.
- 포함 문자:
- 32: 공백 ( )
- 33-47: 특수문자 (! " # $ % & ' ( ) * + , - . /)
- 48-57: 숫자 (0-9)
- 58-64: 특수문자 (: ; < = > ? @)
- 65-90: 대문자 알파벳 (A-Z)
- 91-96: 특수문자 ([ \ ] ^ _ )
- 97-122: 소문자 알파벳 (a-z)
- 123-126: 특수문자 ({ | } ~)
- 용도: 영어와 기본적인 특수문자를 포함하는 범위. 대부분의 언어에서 기본 문자로 사용됩니다.
44032-55203
- 설명: 한글 음절 영역.
- 포함 문자: 완성형 한글.
- 유니코드에서 한글의 범위는 가~힣으로, 11,172개의 완성형 한글이 포함됩니다.
- 시작: 가 (0xAC00, 44032)
- 끝: 힣 (0xD7A3, 55203)
- 용도: 한글을 포함한 텍스트에서 사용. 한글 문장을 표시하려면 이 범위를 반드시 포함해야 합니다.
12593-12643
- 설명: 한글 자모 영역.
- 포함 문자:
- 자음과 모음으로 이루어진 한글의 기본 요소.
- 예: ㄱ, ㄴ, ㄷ, ㄹ, ㅏ, ㅑ, ㅓ 등.
- 용도: 완성형 한글 외에도 조합형 한글을 구성하거나 특수한 경우(예: 게임에서 한글 조합 UI 구현)에 사용.
8200-9900
- 설명: 특수 문자 및 구문 기호.
- 포함 문자:
- 공백, 따옴표, 대시 등 다양한 특수문자 포함.
- 8200-8300 대역은 공백과 유사한 문자(넓은 공백, 줄 간격 관련 기호 등).
- 일부 기호와 수학 기호, 화폐 기호 등이 포함.
- 용도: 텍스트 서식에서 특수문자를 지원하기 위해 사용.