2025_04_26_플랫포머_게임개발_연습_프로젝트
#오늘 한 작업
StageManager && StageSelectManager 구조개선 (추가 진행중)
public enum 씬
{
//부팅씬 : 0
//로비 : 1~6
//스테이지선택 씬 : 7
//Stage 1 : 8~11
//Stage 2 : 12~15
//Stage 3 :16~19
//Stage 4 : 20~23
}
내부 씬의 Enum타입의 숫자를 확실히 변화시켜 저장해두었다앞으로의 씬추가 변경시 부팅씬 로비씬 스테이지 선택 씩 각 스테이지 이벤트스테이지 순서로 배정 예정이며
저 중간에 null 씬을 추가하여 번호배정을 조금더 확실히 하는 방법또한 생각중이다
그러나 전체를 관리하는 Scene 과 다르게 스테이지의 Enum 번호는 0 ~ (스테이지의 수 -1) 이므로 약간의 변환이 필요하다
씬 목표씬 = (씬)((int)스테이지Enum[현재 번호] + 8);
형식으로 넘겨 맞는 값을 불러온다 만약 어느쪽이라도 Enum의 변화가 있다면 같이 확인해주어야한다이러한 사항은 각 관련성있는 메서드 최상단에 주석을 달아놓았다
같은 Manager 스크립트더라도 특정 Scene 에서만 사용하는 Manager와 전역적으로 사용할 Manager를 조금더 구분해두었고 그에따라 전역사용 Manager는 Instance화시키지 않고 상위 Manager가 관리하는 방식으로 넘겨두었고특정 Scene 전용 Manager는 싱글톤화해 오브젝트에 넣어 최상단에 배치해두었다
#작업중 변경(수정) 사항
StageManger / StageSelectManager / StageTransitionManager / SaveManger 의 로직 개선
#예상시간/실제시간
3시간 / 진행중 4시간 ++
#작업중 애로사항
기능이 점점 많아지고 단일책임 원칙을 지키며 작업하려고 하다보니 간단해보이는 하나의 작업에도
많은 소요가 들어간다
Ex) 버튼을 누르면 특정 씬만 가져온다
라는 기능 자체는 구현하기 쉽다 그러나
각각의 정보가 담겨있는 객체를 가져오며 가져온 객체는 새로운정보를 담을수 있고 그 정보는 저장되어남아야한다
이부분을 전부 연계해서 구현되어야하기때문에 기능이 추가됨에 따라 구현해야할 진행사항도 배로 늘어나고있다
#예상되는 애로사항
정보를 제대로 저장하지못함
현재는 Meta의 Enum 값만 받아와 그걸 변형시켜 넘겨주고있지만 받은 Enum값을기반으로 스테이지의 데이터를 전부 따로 저장해주어야한다 아마도 데이터가 하나로 통일된다거나 맞는 위치에 무조건 저장할수있다는 보장이없어 힘들것같다
#지난주 애로사항
버튼구분의 실패 ( 현재 생각중인 시스템 = 버튼 오브젝트에 태그를 추가하기 )
일시정지가 가능한 씬과 불가능한씬
( 방법 고민중 Scene 에 bool 값을 추가하는 방법 생각중이나 효율적으로 보이지 않아 더 고민중)
버튼을 List에 추가해 작동버튼과 아닌 버튼을 구분할예정 그러나 아직 모든 버튼이 만들어진것이 아니고 씬구분도 안되어있기때문에 추후 작업사항으로 기록해둘 예정