디스플레이 폰트와 본문 폰트는 쓰임이 다릅니다
우리 게임은 두꺼운 한글 디스플레이 폰트를 제목과 버튼에 씁니다. 본문에 쓰는 폰트와 필요한 글자 수가 완전히 다릅니다. 제목에 들어가는 글자는 실제로 수십 자 수준이고 본문은 훨씬 넓습니다. 그런데 폰트 에셋을 만들 때 기본 흐름대로 가면 둘 다 같은 방식으로 굽게 됩니다.
정적과 동적을 나누는 기준
- 출시 시점에 문자열이 고정된 화면은 정적으로 굽습니다. 제목, 버튼, 메뉴가 여기 속합니다.
- 사용자 입력이나 번역 갱신으로 글자가 바뀔 수 있는 곳은 동적으로 둡니다.
- 폴백 목록은 순서가 결과를 정합니다. 앞에 놓인 폰트가 글리프를 가지고 있으면 거기서 멈춥니다.
없는 글자는 오류가 아니라 빈칸입니다
글리프가 없으면 예외가 나지 않습니다. 사각형이 하나 그려지거나 폴백 폰트의 다른 모양이 나옵니다. 그래서 이 문제는 출시 후 특정 언어 화면에서 발견되는 일이 많습니다. 화면에 쓰는 문자열을 모아 검사하는 편이 확실합니다.
// 실제로 그릴 문자열에 없는 글리프가 있는지 미리 봅니다
var missing = new HashSet<char>();
foreach (var character in stringsUsedInUi.SelectMany(line => line))
if (!fontAsset.HasCharacter(character))
missing.Add(character);
Debug.Log($"missing glyphs: {missing.Count}");아틀라스 해상도를 올리는 건 해결이 아닙니다
한글은 조합 글자가 많아 글리프 수가 빠르게 늘어납니다. 해상도로 덮으려 하면 메모리만 커집니다. 먼저 글자 목록을 줄입니다.
디스플레이 폰트의 글리프 수가 화면에 쓰는 글자 수에 가까워지면 이 항목은 끝났습니다. 다음에 걸리는 건 줄바꿈입니다. 한글은 글자 단위로 끊기니 같은 문자열이 언어마다 다른 줄 수를 만들고, 그건 로케일별 조판 쪽 얘기입니다.
[Font] Display_KR SDF glyphs 214 atlas 1024x1024
[Font] Body_KR SDF glyphs 2350 atlas 2048x2048
[Check] display font only needs headline characters검증 범위
공식 문서 대조
검증일
Unity 공식 문서와 본문의 코드·절차를 대조해 공개 준비 상태로 전환했습니다. 별도 Unity 프로젝트나 실기기에서 직접 재현한 결과는 아니며, 특정 버전·기기 문의가 들어오면 해당 환경에서 후속 확인합니다.
확인한 공식 문서Unity UI 패키지 문서 ↗