C++/유니티 엔진 모작(일시중지)

[유니티 엔진 제작] Scene 제작

나는야 개발자 2025. 2. 13. 07:29
반응형

1. Application.h 코드에 있는 mGameObject제거

첨부사진1

- 각 Scene에 GameObject를 넣어 씬에서 Object를 관리하도록 할 예정

 

2. 클래스 및 헤더파일 추가

첨부사진2

- Entity, Scene, SceneManager 클래스 및 헤더 추가

 

3. Enetity 코드

첨부사진3

- 구분용 이름이 필요하기 때문에 wstring mName을 추가

- Get할때는 복사가 되지 않도록 &를 이용해 참조 사용

 

4. Scene 코드

첨부사진4

- Entity 클래스 상속

- 각 씬에서 Initialize, Update, LateUpdate, Render를 해야하므로 추가

- 각 씬에서 관리할 오브젝트를 받을 mGameObjects 변수 추가

- 이전 Application에서 mGameObjects관련하여 처리했던 부분을 Scene에서 처리

 

5. SceneManager코드

첨부사진5

- CreateScene함수를 이용해 Scene을 상속받은 것을 생성할 수 있도록 함수 추가

- Scene을 불러올때 빠르게 불러오기 위해서 vector이 아닌 map을 이용하여 불러오도록 변경

- 사용하려는 Scene만 관리하기 위해 mActiveScene 변수 추가

- cpp파일에선 현재 사용중인 씬에 대한 처리만 추가

 

6. PlayScene, LoadScenes 파일 추가

첨부사진6

- SOURCE쪽이 아닌 Engine쪽에 파일 추가

 

7. PlayScene코드

첨부사진7

- Scene을 상속받는 PlayScene 클래스 추가

 

8. LoadScenes 코드

첨부사진8

- LoadScene 함수를 이용해 PlayScene 생성

 

9. SceneManager에 LoadScene 함수 추가

첨부사진9

- 현재 씬을 불러오기 위한 함수 추가

- 함수 추가 후 LoadScenes 클래스에 LoadScene추가

 

10. PlayScene 코드 추가

첨부사진10

- 상속받고 있는 Scene에 있는 Update, LateUpdate, Render함수 실행

 

11. Scene 클래스

첨부사진 11

- 생성된 Gameobject 추가할 AddGameObject 추가

- 각 Update, LateUpdate, Render에 반복문을 이용해 GameObject에 함수들 실행

 

12. 각종 씬 클래스 추가

첨부사진12

- EndScene, TitleScene 추가

 

13. 확인용 코드 수정

첨부사진 13

- EndScene 초기화 쪽 오브젝트 위치를 다른 씬과 다르게 500,500으로 설정

 

14. 결과

첨부사진14

- 생성시 PlayScene과 EndScene위치가 다른 것 확인 가능

 

##############################################################

- 2.13 : Scene관련 코드 추가 진행중

- 2.17 : 생성된 Scene 처리 및 Scene에 생성된 오브젝트 처리 추가, 각종 씬 추가

##############################################################

반응형