추상클래스로 두었던 Scene 클래스를 불러오는데 더 편하게 만들기 위해서
SceneManager 를 생성하여 싱글톤으로 만든 후 관리하기로 했다.
그 과정에서 Scene 클래스를 Interface로 변경하였다.
SceneManager에 각 Scene들의 객체를 생성했고 그 결과 불러오기 훨씬 편해졌다!!
원래 InventoryScene 에서 장비와 소모 아이템(포션) 둘 다 출력하고자 하였으나 PotionScene 에서 소모 아이템을 관리/사용 할 수 있게 했다.
그리고 각 Scene들에 진입, 메인으로 나갈 수 있도록 로직을 전반적으로 추가해주었다.
이 메서드는 현재 실행 중인 프로세스를 종료한다.
0은 종료 코드이다.
switch(userInput)
{
case 0: //게임 종료
//게임 저장 기능 구현되면 추가하기
ui.CountdownComment(2, "게임이 종료됩니다.");
//정상 종료 코드 0, 음수값이 들어가면 비정상 종료
Environment.Exit(0);
break;
//생략
게임이 바로 종료되는 것을 방지하기 위해서 UI 클래스의 CountdownComment() 메서드를 사용했다.
public void CountdownComment(int time, string comment)
{
for (int i = time; i > 0; i--)
{
Console.WriteLine($"{i}초 후 {comment}");
Thread.Sleep(1000);
}
}
Scene 관련된 클래스들이 늘어나면서 편의성을 위해 폴더를 생성하여 관련 cs 파일을 모두 옮겼다.
그 후 Ctrl + Shift + A 를 사용하여 새로운 파일을 만들 때마다 namespace 에 추가적으로 .폴더명이 붙어서 생성이 됐다.
처음에는 이게 무슨 오류인가 싶었는데 폴더를 사용하면서부터 겪은 걸로 보아 폴더 안에서 파일을 생성하면 namespace에 폴더명이 붙어서 생성되는 것이 아닌가... 하는 추측을 해봤고, 추측만 해봤다.