728x90
본 게시글은 고도엔진 공식문서에 작성된 Creating instances를 정리하였습니다.
- 고도엔진 프로젝트는 여러개의 씬으로 분할할 수 있다.
- 씬은 .tscn 파일로 저장하고, 이러한 .tscn 파일을 PackedScene 이라고 부른다.
- 저장된 씬은 다른 씬에서 복제하여 사용할 수 있고, 씬을 복제하는 과정을 인스턴싱(Instancing)이라고 부른다.
실습
프로젝트 불러오기
- 고도엔진 공식 문서에서 실습용으로 제공하는 instancing_starter.zip을 다운 받는다.
- 다운 받은 실습용 프로젝트는 윈하는 위치에 압출을 풀어둔다.
- 고도엔진을 실행하여 Project Manager 창을 연 후 상단에 있는 Import 버튼을 선택한다.
- 처음 Import 버튼을 선택하면 Import Existing Project 창과 Open a File or Directory 창이 동시에 열린다.
- Open File or Directory 창이 열리면 압축을 풀었던 instancing_starter 폴더를 선택한다.
- project.godot 파일을 선택한 후 Open 버튼을 선택하거나 project.godot 파일을 더블 클릭한다.
- Import Existing Project 창만 남으면 Import & Edit 버튼을 선택하여 프로젝트를 불러온다.
인스턴스 생성
- 프로젝트가 열리면 에디터 상단에서 2D 뷰포트를 선택한다.
- 오른쪽 하단에 있는 FileSystem 도크에서
Main.tscn
씬을 불러온다.
- Main 씬이 열리면 Scene 도크에 있는 링크 아이콘을 선택한다.
- Instance Child Scene 팝업창이 열리면
Ball.tscn
씬을 선택한 후 Open 버튼을 누르거나 선택한 씬을 더블 클릭한다.
- FileSystem 도크에서
Ball.tscn
씬을 선택한 후 Scene 도크로 드래그 앤 드롭하여도 된다.
- 뷰포트에 나타난 공을 선택한 후 드래그하여 원하는 위치에 배치한다.
- FileSystem 도크에서 선택한
Ball.tscn
씬을 뷰포트로 바로 드래그하는 것도 가능하다.
- 오른쪽 상단의 Run Project를 선택하여 프로젝트를 실행하면 떨어지는 공이 벽에 충돌하는 것을 확인할 수 있다.
- 동일한 방법으로 여러개의 공을 배치할 수 있다.
- 여러개의 공을 배치하면 노드 이름이 중복되지 않도록 자동으로 이름 뒤에 숫자가 붙는다.
씬과 인스턴스 편집
Ball.tscn
씬에서 Ball노드를 선택한 후 Inspector 도크에서 공의 속성을 변경한 후 저장하면 Main.tscn에 배치했던 모든 공의 속성이 변경된다.Ball.tscn
씬을 열고 Ball 노드를 선택한다.- Inspector 도크에서 PhysicsMaterial 프로퍼터를 선택하여 내용을 확장한다.
- Bounce 속성 옆에 있는 숫자 필드를 선택하여 0.5를 입력한다.
- Run Project를 선택하면 이전 보다 더 많이 튀어 오르는 공들을 확인할 수 있다.
- 씬을 저장하지 않아도 Run Project를 선택하면 씬은 자동으로 저장된다.
Main.tscn
씬에 배치한 공들 중 1개를 선택한 후 Inspector 도크에서 선택한 공의 속성만 변경할 수 있다.Main.tscn
씬을 열고, 배치했던 공들 중 1개를 선택한다.- Inspector 도크에서 Gravity Scale 속성 옆의 숫자 필드를 선택하여 10을 입력한다.
- Run Project 를 선택하면 다른 공들보다 더 빨리 추락하는 1개의 공을 확인할 수 있다.
- 변경된 속성은 되돌리기 아이콘을 클릭하여 초기값으로 되돌릴 수 있다.
디자인 언어로서 씬 인스턴스
- 고도 엔진으로 게임을 제작할 때, MVC(Model-View-Controller), ERD(Entity-Relation Diagram) 같은 패턴을 사용하는 것을 권장하지 않는다.
- 플레이어가 게임에서 보게 될 요소를 상상하고 이를 중심으로 코드를 구성하는 것 부터 시작하는 것을 권장한다.
'Godot' 카테고리의 다른 글
[GodotDocs][Step by step] 4. 플레이어 입력 수신(C#) (2) | 2023.12.29 |
---|---|
[GodotDocs][Step by step] 4. 플레이어 입력 수신(GDScript) (0) | 2023.12.29 |
[GodotDocs][Step by step] 3. 첫 번째 스크립트 만들기(C#) (0) | 2023.12.27 |
[GodotDocs][Step by step] 3. 첫 번째 스크립트 만들기(GDScript) (0) | 2023.12.27 |
[GodotDocs][Step by step] 1. 노드와 씬 (2) | 2023.12.22 |