텍스트 에셋
텍스처 컴포넌트

폰트

Fonts 사용을 위해 GUI Text 또는 Text Mesh Component 중 하나를 생성하거나 임포트할 수 있습니다.

폰트 파일 임포트

프로젝트에 폰트를 추가하려면 Assets 폴더에 폰트 파일을 둘 필요가 있습니다. Unity가 자동으로 폰트를 임포트합니다. 지원되는 폰트 포맷은 TrueType Fonts .ttf, OpenType Fonts .otf 입니다.

폰트의 Size를 변경하려면 Project View에서 강조 표시하고, InspectorImport Settings에 많은 옵션이 표시됩니다.

폰트에 대한 임포트 설정
폰트에 대한 임포트 설정
프로퍼티: 기능:
Font Size The size of the font, based on the sizes set in any word processor.
Rendering mode The font rendering mode, which tells Unity how to apply smoothing to the glyphs.
Character The character set of the font to import into the font texture
이 모드를 Dynamic으로 설정하면 Unity가 내장 폰트 데이터와 render font glyphs 를 런타임에 사용할 수 있습니다 (아래 참조).

Dynamic 폰트 고유의 임포트 설정

프로퍼티: 기능:
Include Font Data 이Dynamic 폰트 프로퍼티와 함께 사용하는 경우, 이 설정이 폰트 패키징을 제어합니다. TTF가 선택되었을때 빌드의 출력에 포함됩니다. 선택하지 않으면 최종 사용자가 시스템에 설치된 폰트를 가지고 있다고 간주됩니다. 폰트는 저작권의 대상이 되기 때문에 라이센스가 있거나 직접 만든 폰트만 사용하십시오.
Font Names A list of fallback fonts to use when fonts or characters are not available (see below).

After you import the font, you can expand the font in Project View to see that it has auto-generated some assets. Two assets are created during import: “font material” and “font texture”. Unlike many applications you might be familiar with, fonts in Unity are converted into textures, and the glyphs that you display are rendered using textured quads. Adjusting the font size effectively changes how many pixels are used for each glyph in this generated texture. Text Mesh assets are 3d geometry textured with these auto-generated font textures. You will want to vary the size of the font to make these assets look crisp.

다이내믹 폰트

Import Settings에서 Characters 드롭다운을 Dynamic으로 설정 했을때, Unity는 모든 폰트 문자를 가진 텍스처를 미리 생성하지 않습니다. 대신 FreeType 폰트 렌더링 엔진을 사용하여 온 더 플라이로 텍스처를 만듭니다. 여기에는 특히 사용자 시스템에 일반적으로 포함된 폰트 사용하고 있기 때문에 폰트 데이터를 포함할 필요가 없는 경우나 아시아 언어, 큰 폰트 크기(보통 폰트 텍스처를 사용하기 때문에 폰트 텍스처가 매우 커진다)를 지원해야 하는 경우, 다운로드의 크기와 텍스처 메모리에 저장할 수 있다는 장점이 있습니다.

When Unity tries to render text with a dynamic font, but it cannot find the font (because Include Font Data was not selected, and the font is not installed on the user machine), or the font does not include the requested glyph (like when trying to render text in east Asian scripts using a latin font, or when using styled bold/italic text), then it will try each of the fonts listed in the Font Names field, to see if it can find a font matching the font name in the project (with font data included) or installed on the user machine which has the requested glyph. If none of the listed fallback fonts are present and have the requested glyph, Unity will fall back to a hard-coded global list of fallback fonts, which contains various international fonts commonly installed on the current runtime platform.

Note that some target platforms (WebGL, some consoles) do not have OS default fonts Unity can access for rendering text. For those platforms, Include Font Data will be ignored, and font data will always be included. All fonts to be used as fallbacks must be included in the project, so if you need to render international text or bold/italic versions of a font, you need to add a font file which has the required characters to the project, and set up that font in the Font Names list of other fonts which should use it as fallbacks. If the fonts are set up correctly, the fallback fonts will be listed in the Font Importer inspector, as References to other fonts in project.

Default font asset

The default font asset is a dynamic font which is set up to use Arial. If Unity can’t find the Arial font on your computer (for example, if you don’t have it installed), it will fall back to a font bundled with Unity called Liberation Sans.

Liberation Sans looks like Arial, but it does not include bold or italic font styles, and only has a basic Latin character set - so styled text or non-latin characters may fall back to other fonts or fail to render. It does however have a license which allows it to be included in player builds.

Custom fonts

To create a custom font select ‘Create->custom font’ from the project window. This will add a custom font asset to your project library.

The Ascii Start Offset field is a decimal that defines the Ascii index you would like to begin your Character Rects index from. For example, if your Ascii Start Offset is set to 0 then the capital letter A will be at index 65 but if the Ascii Start Offset is set to 65 then the letter A will be at index 0. You can consult the Ascii Table here but you should bear in mind that custom font uses the decimal ascii numbering system.

Kerning can be set to define how close each character will be to the next character on the same line and Line spacing can be set to define how close each line will be to the next.

To create a font material you will need to import your font as a texture then apply that texture to a material, then drag your font material onto the Default Material section.

The Character Rects section is where each character of your font is defined.

The Size field is for defining how many characters are in your font.

Within each Element there is an index field for the ascii index of the character. This will be an integer that represents the character in this element.

To work out the UV values you need to figure out how your characters are positioned on a scale of 0 to 1. You divide 1 by the number of characters on a dimension. For example if you have a font and the image dimensions on it are 256x128, 4 characters across, 2 down (so 64x64), then UV width will be 0.25 and UV height will be 0.5.

For UV X and Y, it’s just a matter of deciding which character you want and multiplying the width or height value times the column/row of the letter.

Vert size is based on the pixel size of the characters e.g. your characters are each 128x128, putting 128 and –128 into the Vert Width and Height will give properly proportioned letters. Vert Y must be negative.

Width will be the width of your character in pixels.

Example of custom font inspector with values
Example of custom font inspector with values

유니코드 지원

Unity는 Unicode를 완벽하게 지원하고 있습니다. Unicode 텍스트는 일반 ASCII 문자 집합에서 지원되지 않는 독일어, 프랑스어, 덴마크어, 일본어 문자를 표시할 수 있습니다. 또한 글꼴이 지원하는 경우에 화살표와 옵션 키 등의 다양한 특수 용도 문자를 입력할 수 있습니다.

Unicode 문자를 사용하려면 임포트 설정의 Characters 드롭 다운에서 Unicode 또는 Dynamic 중 하나를 선택합니다. 이 글꼴로 Unicode 문자를 볼 수 있습니다. GUIText 또는 Text Mesh를 사용하는 경우, 인스펙터 컴포넌트의 Text 필드에 Unicode 문자를 입력할 수 있습니다.

또한, 스크립트에서 표시되는 텍스트를 설정하고 싶은 경우, Unicode 문자도 사용할 수 있습니다. Javascript 및 C# 컴파일러는 Unicode 기반의 스크립트를 완벽하게 지원하고 있습니다. UTF–16 인코딩으로 스크립트를 저장 해야 합니다. Unicode 문자를 스크립트 문자열에 추가하면 UnityGUI와 GUI 텍스트 또는 텍스트 메쉬에서 원하는 대로 표시됩니다.

Note that surrogate pairs are not supported.

폰트 색상 변경

폰트의 사용 방법에 따라, 표시 폰트 색상을 변경하는 방법이 몇 가지 있습니다.

GUIText와 텍스트 메쉬

GUI 텍스트 또는 텍스트 메쉬를 사용하여 폰트에 대한 사용자 정의인 Material을 사용하여 색상을 변경할 수 있습니다. 프로젝트 뷰에서 Create > Material을 클릭하고 Inspector에서 새로 만든 메테리얼을 선택하고 설정합니다. 폰트 에셋에서 그 메테리얼에 텍스처를 할당해야 합니다. 폰트 메테리얼에 내장된 GUI/Text Shader 쉐이더를 사용함으로써, 메테리얼의 Text Color 프로퍼티 에서 색상을 선택할 수 있습니다.

UnityGUI

UnityGUI 스크립팅을 사용하여, 폰트의 경우, 다른 환경에서 폰트 색을 더 제어할 수 있습니다. 폰트 색을 변경하려면 Assets > Create > GUI Skin에서 GUISkin을 만들고 Label > Normal > Text Color 등에서 특정 제어 상태에 색상을 정의합니다. 자세한 내용은 GUI Skin page를 참조하십시오.

힌트

  • 임포트된 폰트를 표시하려면 폰트를 선택하고 GameObject > Create Other > 3D Text를 선택합니다.
  • You can reduce the generated texture size for fonts by using only lower or upper case characters.
텍스트 에셋
텍스처 컴포넌트