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

GUI 템플릿 노드

GUI 템플릿 노드는 공유 템플릿 또는 “prefabs”를 기반으로 재사용 가능한 GUI 컴포넌트를 만드는 강력한 메커니즘을 제공합니다. 이 매뉴얼은 이 기능과 사용 방법을 설명합니다.

GUI 템플릿은 다른 GUI 씬 안에서 노드 단위로 인스턴스화되는 GUI 씬입니다. 이후 원본 템플릿 노드의 모든 프로퍼티 값은 오버라이드할 수 있습니다.

템플릿 만들기

GUI 템플릿은 일반 GUI 씬이므로 다른 GUI 씬과 같은 방식으로 만듭니다. Assets pane의 원하는 위치를 오른쪽 클릭하고 New... ▸ Gui를 선택합니다.

템플릿 만들기

템플릿을 만들고 저장합니다. 인스턴스의 노드는 원점을 기준으로 배치되므로, 템플릿은 0, 0, 0 위치에 만드는 것이 좋습니다.

템플릿에서 인스턴스 만들기

템플릿을 기반으로 원하는 수만큼 인스턴스를 만들 수 있습니다. 템플릿을 배치할 GUI 씬을 만들거나 연 다음, OutlineNodes 섹션을 오른쪽 클릭하고 Add ▸ Template을 선택합니다.

인스턴스 만들기

Template 프로퍼티를 템플릿 GUI 씬 파일로 설정합니다.

템플릿 인스턴스는 원하는 수만큼 추가할 수 있고, 각 인스턴스에서 각 노드의 프로퍼티를 오버라이드하고 인스턴스 노드의 위치, 색상, 크기, 텍스쳐 등을 변경할 수 있습니다.

인스턴스

변경한 프로퍼티는 에디터에서 파란색으로 표시됩니다. 프로퍼티 옆의 리셋 버튼을 눌러 값을 템플릿 값으로 되돌릴 수 있습니다:

프로퍼티

오버라이드된 프로퍼티가 있는 노드도 Outline에서 파란색으로 표시됩니다:

Outline

템플릿 인스턴스는 Outline 뷰에 접을 수 있는 항목으로 표시됩니다. 하지만 이 Outline 항목은 노드가 아니라는 점이 중요합니다. 템플릿 인스턴스 자체는 런타임에도 존재하지 않지만, 인스턴스에 포함된 모든 노드는 존재합니다.

템플릿 인스턴스에 포함된 노드는 접두사와 슬래시("/")가 Id에 붙은 이름으로 자동 지정됩니다. 접두사는 템플릿 인스턴스에 설정된 Id입니다.

런타임에 템플릿 수정하기

템플릿 메커니즘을 통해 추가된 노드를 조작하거나 조회하는 스크립트는 인스턴스 노드의 이름 지정 방식만 고려하면 됩니다. 노드 이름 접두사로 템플릿 인스턴스 Id를 포함하세요:

if gui.pick_node(gui.get_node("button_1/button"), x, y) then
    -- 무언가를 수행합니다...
end

템플릿 인스턴스 자체에 해당하는 노드는 없습니다. 인스턴스의 루트 노드가 필요하다면 템플릿에 추가하세요.

템플릿 GUI 씬에 스크립트가 연결되어 있더라도, 그 스크립트는 인스턴스 노드 트리의 일부가 아닙니다. 각 GUI 씬에는 단 하나의 스크립트만 연결할 수 있으므로, 스크립트 로직은 템플릿을 인스턴스화한 GUI 씬에 있어야 합니다.