[1]. Scene을 만들기 위한 과정.
- 기본적으로 Loading Scene 1 → Logo Scene → Loading Scene 2 → Game Scene 으로 할 예정.
- Loading Scene 1에서, Logo Scene에 필요한 자원 처리
- Loading Scene 2에서, Game Scene에 필요한 자원 처리
[2]. Utility에 Level이라는 필터를 추가한다.
[3]. 결국에, Client 프로젝트에서, Level의 Update를 Engine 프로젝트 쪽의 Update에서 가져와 호출 하고 싶기에, Engine의 Level 클래스를 부모로 하고, Client 프로젝트에서는 그 Level의 자식클래스를 오버라이딩 해서 호출하는 식으로 처리한다.
[4]. Level 부모 클래스를 Engine프로젝트에 추가한다.
[5]. Client 프로젝트 속 Clinet_Defines.h에 열거체를 선언한다 ( Scene 종류들)
[6]. Level_Manager 클래스는, 주로 어떤 Level을 할당하고, Open_Level이라는 함수를 통해 씬 체인지 역할을 한다.
- level교체 전에, Safe_Release (nullptr이 아니면 지우는 식)
- 기존 level을 지우고, 새로운 level로.
- 여기서 전에 만들어 두었던, GameInstance를 가져와서 사용하는데, 이는, 앞으로, 작업할 때에, 어떤 level들에 필요한 객체들인가.. 등을 구분해서 GameInstance를 생성할 것이므로, 즉, 그 GameInstance객체들이 각각의 다른 Manager 클래스들이 가지고 있을 것이기 때문에, 그 객체들을 지울 용도로 가져오는 것이다.
- 기존 레벨에 해당했던 객체들을 삭제하기 위한 용도 .
- 최초 level할당 이라면, (nullptr이 아니라면 진행하는 식으로 예외처리)