Inflearn brand logo image

인프런 커뮤니티 질문&답변

Sun White님의 프로필 이미지
Sun White

작성한 질문수

Godot Engine 으로 시작하는 첫 게임 개발

점수 화면 표시

점수표시에 캔바스레이어 없어도 잘되던데

해결된 질문

작성

·

78

0

그냥 자식노드로 점수표시화면.tscn 인스턴스로 불러와추가만해도 상단에 표시 잘되고 작동도 잘되던데요.

캔바스레이어를 만들고 하위로 넣는 이유가 있을까요?

중요한거면 알려주세요.

답변 2

0

코드쉼터님의 프로필 이미지
코드쉼터
지식공유자

안녕하세요. 용기있게 질문 남겨 주셔서 감사합니다.

캔버스레이어 하위에 UI 요소들을 넣는 이유는 2가지가 있습니다.

  1. UI(Control) 만 존재하면 문제가 없지만, 추가적인 Sprite2D 와 같은 노드를 넣을 경우에도 카메라에 제약받지 않고 독립적으로 표시되게 하기 위함

  2. UI 요소들을 레이어 별로 깔끔하게 정리하기 위함

강의에 나오는 실습만 진행하실 경우 카메라는 고정된 상태로 캔버스레이어를 생략하셔도 문제는 없습니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. Sun White님.

개발하시는 게임 프로젝트에서 Godot의 CanvasLayer 노드를 사용하는 이유에 대해 설명 드리겠습니다.

CanvasLayer의 역할

CanvasLayer는 Godot에서 UI 또는 HUD 같은 화면 상단에 고정된 요소들을 구현하는 데 유용합니다. 게임 씬의 다른 요소들과 별도로 렌더링 계층을 가지기 때문에, 일반적으로 카메라의 움직임에 영향을 받지 않습니다. 이에 따라 점수 표시와 같은 UI 요소를 특정 위치에 고정하여 항상 표시되도록 하려면, CanvasLayer 노드 하위에 배치하는 것이 유리합니다.

주요 장점:

  1. 고정 위치: 일반적인 게임 요소들과 별도로 렌더링되므로, 카메라 이동에 관계없이 화면의 고정된 위치에 표시할 수 있습니다.
  2. 독립적인 배치: 씬 내의 다른 객체들과 관계없이 배치 및 화면 크기에 맞춘 독립적인 좌표 시스템을 가집니다. 따라서 UI 요소의 배치를 좀 더 유연하게 할 수 있습니다.
  3. 우선 순위 조정: CanvasLayer의 ‘Layer’ 값을 사용하여 다른 CanvasLayer끼리의 렌더링 순서를 조절할 수 있습니다.

일반적으로 큰 프로젝트에서는 UI 요소들을 고정시키기 위해 CanvasLayer를 사용하는 것이 관행이지만, 작은 경우에는 필요성이 덜할 수 있습니다. 하지만 프로젝트의 규모가 커지거나 UI가 더 복잡해질 경우, CanvasLayer를 활용하는 것이 관리 측면에서 유리합니다.

아래의 링크를 통해 비슷한 주제에 대해 토론된 게시물을 참고하실 수 있습니다:
- 점수 표시 화면에서 CanvasLayer의 사용 예시 보기

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Sun White님의 프로필 이미지
Sun White

작성한 질문수

질문하기