본문 바로가기

게임/Godot 엔진

Godot - UI

CanvasLayer

Godot 에 메뉴 같은 UI 적인 요소를 넣고 싶을 때는 일반적으로 씬의 루트를 CanvasLayer 를 선택해준다.

(그래야 하위 노드들을 만들 때, 설정한 창 크기 기준에 맞춘다거나 할 수 있다.)

 

 

 

MarginContainer

자식 요소를 자동으로 레이아웃하는 데 사용되는 노드다. MarginContainer를 사용하여 각 자식 요소의 마진을 설정하여 요소 간 간격을 만들고, 부모 요소의 크기 조정에 따라 자식 요소의 크기와 위치를 자동으로 조정할 수 있다.

 

MarginContainer 를 선택하고 레이아웃에서 "사각형 전체" 를 선택하면 ViewPort 크기에 맞춰 넒어진다.

 

보통 MarginContainer 안에 있는 노드들을 중앙 정렬 시키고 싶을 때는 Size Flag 속성을 조절하면 된다.

이 때, Min Size 를 지정해야, Shrink Center 했을 때, 중앙에 위치가 맞춰진다. 

(왜 인지는 모르겠다. Godot UI 관련 잘 정리된 문서도 없고, 그냥 이것저것 해보면서 알아야 한다.)

 

PanelContainer

패널 같은 것을 만들 수 있는 컨테이너 (메뉴 창이라던지 모달 같은 느낌)

 

Theme

Gdoot 파일 에디터의 폴더에서 오른쪽 마우스 클릭 -> 새 Resource -> theme 검색 -> 추가 를 통해 만들 수 있다.

보통 resource 혹은 theme 이라는 명의 폴더를 만들어 거기다가 모아 놓는 방식을 사용하는 듯 하다.

 

theme.tres 리소스에서 UI 노드들의 기본 설정값(테마)를 지정할 수 있다.

아래처럼 MarginContainer 항목을 추가해주면 인스펙터에 MarginContainer 속성을 지정할 수 있게 된다.

그리고 해당 테마가 적용된 노드는, 그대로 MarginContainer 값을 상속 받는다.

PanelContainer 항목을 추가해서, Panel 의 기본 Background 색 속성같은 것도 지정가능하다.

'게임 > Godot 엔진' 카테고리의 다른 글

Godot 스크립트  (0) 2023.03.27
Godot - Animation  (0) 2023.01.08
Godot 노드들  (0) 2021.11.07
Godot 편집기 Tip  (0) 2021.11.07
Gotdot - Tutorial 게임 만들기 (1)  (0) 2021.03.03