텍스트 메쉬 프로(Text Mesh Pro) :: (경고)유니코드 값이 \\u3134인 문자는 글꼴 자산이나 잠재적인 폴백에서 찾을 수 없습니다.

 

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 를 사용해서 다시 생성

 

  1. Character Set을 "Unicode Range (Hex)"로 선택.
  2. 범위를 32-126,44032-55203,12593-12643,8200-9900로 입력.
  3. 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 대역은 공백과 유사한 문자(넓은 공백, 줄 간격 관련 기호 등).
    • 일부 기호와 수학 기호, 화폐 기호 등이 포함.
  • 용도: 텍스트 서식에서 특수문자를 지원하기 위해 사용.