Version: Unity 6.0 (6000.0)
언어 : 한국어
컬러 이모티콘
UITK 텍스트 설정 에셋

고급 텍스트 제너레이터

고급 텍스트 제너레이터는 Harfbuzz, ICU, FreeType을 사용하여 포괄적인 Unicode 지원 및 텍스트 형성 기능을 제공하는 텍스트 렌더링 모듈입니다.

고급 텍스트 제너레이터를 사용하면 아랍어, 히브리어와 같이 오른쪽에서 왼쪽으로 쓰는(RTL) 언어 등 다양한 언어와 스크립트를 사용할 수 있습니다.

고급 텍스트 제너레이터 활성화

  1. 메뉴에서 Edit > Project Settings > UI Toolkit을 선택합니다.
  2. Enable Advanced Text Generator 체크박스를 선택합니다.

고급 텍스트 제너레이터 사용

고급 텍스트 제너레이터를 사용하려면 사용하려는 언어를 지원하는 폰트 에셋을 사용해야 합니다. 예를 들어 아랍어를 사용하려면 아랍어를 지원하는 폰트 에셋을 사용해야 합니다. 고급 텍스트 제너레이터는 동적 폰트 에셋만 지원합니다. 프로젝트에서 고급 텍스트 제너레이터를 사용하기 전에 폰트를 프로젝트로 임포트하고 폰트에서 동적 폰트 에셋을 생성해야 합니다.

UI 빌더에서 사용

UI 빌더에서 고급 텍스트 제너레이터를 사용하려면 다음을 수행합니다.

  1. 적용할 시각적 요소를 선택합니다.
  2. 인스펙터 패널에서 Text를 선택합니다.
  3. Advanced Text Generator 드롭다운에서 Advanced를 선택합니다.

USS에서 사용

USS에서 고급 텍스트 제너레이터를 사용하려면 -unity-text-generatoradvanced로 설정합니다. 예시:

.labelText {
    -unity-text-generator: advanced;
}

C# 스크립트에서 사용

C# 스크립트에서 고급 텍스트 제너레이터를 사용하려면 TextGeneratorTypeAdvanced로 설정합니다. 예시:

textElement.style.unityTextGenerator = new StyleEnum<TextGeneratorType>(TextGeneratorType.Advanced);

언어 방향

언어 방향은 HTML의 dir 프로퍼티에 해당하는 전역 UXML 속성입니다. 이 속성은 VisualElement에 대한 기본 텍스트 방향과 자식 요소에 대한 캐스케이드를 설정합니다.

언어 방향은 줄임표 위치, 기호 배치에도 영향을 미치며 :dir() 유사 상태에 대한 지원이 추가되면 텍스트 방향에 따라 조건부로 스타일을 적용할 수 있습니다.

  • Inherited(기본값): 요소가 부모로부터 텍스트 방향을 상속합니다.
  • LTR(왼쪽에서 오른쪽): 요소 내의 텍스트가 왼쪽에서 오른쪽으로 배치되도록 합니다.
  • RTL(오른쪽에서 왼쪽): 요소 내의 텍스트가 오른쪽에서 왼쪽으로 배치되도록 합니다.

향후 릴리스에서는 auto 값도 지원할 예정입니다. auto 값은 텍스트 블록의 Unicode 문자를 분석하여 텍스트 방향을 동적으로 결정합니다. 강한 방향성을 가진 문자(LTR 또는 RTL)의 개수를 계산하고 개수가 더 많은 문자를 기준으로 방향을 설정합니다.

커서 이동

이 섹션에서는 양방향 텍스트(BIDI 텍스트)를 처리할 때 Unity의 입력 필드에서 커서 이동이 작동하는 방식을 설명합니다.

논리적 커서 이동

Unity는 현재 Logical Cursor Movement 방식을 따릅니다. 즉, 커서가 각 텍스트 부분의 방향에 맞춰 양방향 텍스트를 따라 이동합니다. 예를 들어, 아랍어와 영어 텍스트가 포함된 문장에서 왼쪽 화살표 키를 사용하면 아랍어 부분에서는 오른쪽에서 왼쪽으로 이동하고 영어 부분에서는 가장 왼쪽 문자로 이동한 다음 영어 부분의 끝에 도달할 때까지 왼쪽에서 오른쪽으로 이동합니다.

논리적 커서 이동 예시
논리적 커서 이동 예시

시각적 커서 이동

일부 애플리케이션은 Visual Cursor Movement 방식을 따릅니다. 이는 텍스트의 방향에 관계없이 커서가 다음에 보이는 문자로 이동하므로 사용자에게 더 직관적인 느낌을 줄 수 있습니다. 향후 릴리스에서는 커서 이동 모드를 옵션으로 설정할 예정입니다.

제한 사항

고급 텍스트 제너레이터의 제한 사항은 다음과 같습니다.

  • 동적 폰트 에셋만 지원합니다.
  • 글리프 지표를 커스터마이즈할 수 없습니다. 권장하는 베스트 프랙티스는 폰트 편집 툴을 사용하여 지표를 조정하거나 필요에 따라 폰트를 조정하는 것입니다.

다음과 같은 일부 기능은 아직 지원되지 않지만 향후 릴리스로 제공할 예정입니다.

  • <sprite>, <size>, <font>, <space>, <mark> 등을 비롯한 특정 리치 텍스트 태그
  • 문자, 단어, 단락 간격과 같은 간격 프로퍼티

고급 텍스트 제너레이터를 사용하는 경우 프로젝트에 상당히 많은 4.8MB의 메모리를 사용하는 icudt73l 파일이 포함됩니다. 이는 향후 릴리스에서 개선될 예정입니다.

추가 리소스

컬러 이모티콘
UITK 텍스트 설정 에셋