Manuals
Manuals




This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English

Label

게임 오브젝트에 텍스트로 된 컨텐츠를 부착하는 것은 꽤 일반적입니다. Defold의 GUI 지원 시스템이 있긴 하지만, 정보가 게임 오브젝트에 붙어 따라다니게 만들기는 귀찮은 일입니다. Label 컴포넌트는 게임 오브젝트에 텍스트 컨텐츠를 첨부하여 이를 쉽게 구현해 줍니다.

Creating a label

라벨 컴포넌트는 게임 공간의 텍스트 조각을 화면에 렌더링합니다. 기본적으로는 스프라이트나 타일 그래픽과 함께 그려지고 정렬됩니다. 이 컴포넌트에는 텍스트를 렌더링 하는 방식을 제어하기 위한 여러 속성들이 있습니다.

라벨 컴포넌트를 만드는 방법은 아래와 같습니다.

  • 게임 오브젝트에 마우스 오른쪽 버튼을 누르고 Add Component를 선택한 후 Label을 선택하고 OK를 누릅니다. 그러면 해당 게임 오브젝트의 내장 컴포넌트로 라벨이 추가됩니다. Add label

  • 만약 같은 템플릿으로 부터 다수의 라벨을 인스턴스화 하고 싶다면 새 Label File을 만들고 (Assets pane 창의 한 폴더에서 오른쪽 클릭하고 New ▸ Label File 선택) 게임 오브젝트에 오른쪽 클릭해서 Add Component From File을 선택한 후 아까 만든 라벨 파일을 선택하는 방식으로 여러 번 쓸 수 있습니다.

라벨 컴포넌트는 런타임 중에 혹은 개발 중에 변경 가능한 특별한 속성들을 가지고 있습니다.

New Label component

Size

텍스트 경계 상자(text bounding box)의 크기입니다. 아래 있는 Line Break 속성을 설정하면 이 값을 기준으로 텍스트가 줄바꿈 됩니다.

Text

이 속성에 입력된 텍스트가 화면에 표시됩니다.

Color

텍스트의 색상

Alpha

텍스트의 알파값

Pivot

텍스트의 피벗(pivot). 텍스트 정렬(text alignment)을 변경하려면 사용하세요. (아래 참고)

Line Break

이 속성을 설정하면 텍스트가 여러 줄로 나뉘어 질 수 있습니다. 컴포넌트의 넓이에 따라 텍스트가 랩(wrap) 될 것인지가 결정되며 텍스트를 줄바꿈 하기 위해선 공백문자(space)가 필요합니다.

Leading

행간(line spacing)의 스케일 숫자. 기본값은 1이며, 0 값으로 셋팅하면 행 사이의 공간도 없으므로 한 줄로 표시됩니다.

Tracking

자간(letter spacing)의 스케일 숫자. 기본값은 0

Outline

외곽선의 색상

Outline Alpha

0.0~1.0값 사이의 외곽선 알파채널 값

Shadow

그림자의 색상

Shadow Alpha

0.0~1.0값 사이의 그림자 알파채널 값

Font

라벨에 사용할 폰트 리소스

기본 메터리얼은 성능상의 이유로 그림자(shadow) 렌더링이 비활성화 되어 있습니다.

Alignment

pivot 속성을 설정하여 텍스트의 정렬 방식을 조정할 수 있습니다.

Center

pivot을 “Center”, “North”, “South” 로 설정하면, 텍스트가 중앙 정렬됩니다.

Left

pivot을 “West” 로 설정하면, 텍스트가 왼쪽 정렬됩니다.

pivot을 “East” 로 설정하면, 텍스트가 오른쪽 정렬됩니다.

Text alignment

Runtime manipulation

런타임시에 라벨 텍스트를 읽고 설정할 수 있을 뿐 아니라 아래와 같은 다양한 속성을 다룰 수도 있습니다.

color

vector4 라벨의 색상

outline

vector4 라벨의 외곽선 색상

scale

number | vector3 라벨의 스케일, 규격화된 스케일이라면 number 타입, 각 xyz 축에 따라 개별적으로 설정한다면 vector3 타입

shadow

vector4 라벨의 그림자 색상

size

vector3 라벨의 크기

function init(self)
    -- 현재 스크립트와 동일한 오브젝트에 있는 "my_label" 컴포넌트의 텍스트를 설정함
    label.set_text("#my_label", "New text")
end
function init(self)
    -- 현재 스크립트와 동일한 게임 오브젝트에 있는 "my_label" 컴포넌트의 색상을 grey로 설정함...
    local grey = vmath.vector4(0.5, 0.5, 0.5, 1.0)
    go.set("#my_label", "color", grey)

    -- ...그리고 알파값에 0을 줘서 외곽선 삭제...
    go.set("#my_label", "outline.w", 0)

    -- ...그리고 x축으로 크기를 2배로 늘림...
    local scale_x = go.get("#my_label", "scale.x")
    go.set("#my_label", "scale.x", scale_x * 2)
end