public abstract class Scene
{
public abstract void loadScene(UI ui, Character character);
}
원래는 `Scene` 베이스 클래스를 `추상화 클래스(abstract)`로 선언했었다.
이후 씬 이동을 구현할 때 각 씬 클래스들을 불러오기 위해 `static` 선언이 필요했다.
하지만 추상화 클래스는 static 선언을 할 수 없다!...
public class SceneManager
{
//싱글톤 생성
public static SceneManager Instance;
public Scene _introScene;
public Scene _startScene;
public Scene _characterInfoScene;
public Scene _inventoryScene;
public Scene _equipmentScene;
public Scene _potionScene;
public SceneManager()
{
if (Instance == null)
{
Instance = new SceneManager();
}
else
{
Instance = this;
}
_introScene = new IntroScene();
_startScene = new StartScene();
_characterInfoScene = new CharacterInfoScene();
_inventoryScene = new InventoryScene();
_equipmentScene = new EquipmentScene();
_potionScene = new PotionScene();
}
}
그래서 `SceneManager.cs`를 두고, 매니저 클래스에서 각 씬들을 초기화하여 매니저 클래스는 싱글톤으로 만들었다.
그래서 씬 이동시에 SceneManager를 통해 원하는 씬들을 편히 불러올 수 있게 되었다.
public interface Scene
{
public void loadScene(UI ui, Character character);
}
그리고 베이스 클래스의 메소드가 선언부만 존재했기에 `인터페이스(interface)`로 변경했다.
`추상화 클래스`는 메소드의 구현부까지 있기 때문이다.
반응형
'스파르타 게임개발종합반(Unity) > TIL - 본캠프 매일 공부 기록' 카테고리의 다른 글
2024.05.07 TIL - 프로젝트 마무리 (0) | 2024.05.07 |
---|---|
2024.05.03 TIL - 클래스 명시적 형변환, 포인터 (0) | 2024.05.03 |
2024.05.01 TIL - 클래스 분리의 중요성 (0) | 2024.05.01 |
2024.04.30 TIL - Json 저장용 리스트 클래스 만들기 (0) | 2024.04.30 |
2024.04.29 TIL - GitHub 브랜치 생성 삽질한 기록 (0) | 2024.04.29 |
댓글