주간 육성 스케줄
월요일부터 금요일까지 보컬, 댄스 등 훈련 일정을 선택합니다. 활동 결과가 6개 능력치에 반영되어 이후 경연과 순위에 영향을 줍니다.
6명의 연습생 중 한 명을 선택해 훈련과 스토리, 리듬 경연을 진행하고 최종 데뷔조에 도전하는 아이돌 서바이벌 육성 게임입니다.
요일별 스케줄로 능력치를 성장시키고 곡의 콘셉트와 연습생의 능력치를 조합해 경연 점수를 만듭니다. 경연 결과는 66명의 순위와 탈락에 반영되며, 선택한 연습생과 진행 결과에 따라 서로 다른 이야기를 경험할 수 있습니다.



사용자가 실제로 경험하는 핵심 기능입니다.
월요일부터 금요일까지 보컬, 댄스 등 훈련 일정을 선택합니다. 활동 결과가 6개 능력치에 반영되어 이후 경연과 순위에 영향을 줍니다.
공통·캐릭터·탈락·데뷔 이야기를 JSON 데이터로 관리합니다. 플레이 상태에 맞는 대사와 장면을 불러와 선택한 연습생의 흐름을 이어갑니다.
D, F, J, K 네 키로 노트를 판정합니다. Perfect, Good, Bad, Miss 판정과 콤보, 곡 점수를 계산하고 육성 능력치와 합산해 최종 베네핏을 결정합니다.
경연 점수에 따라 66명의 순위를 갱신합니다. 라운드별 생존 인원이 줄어들고 마지막 6명이 데뷔하는 서바이벌 흐름을 구현했습니다.
기능을 만들기 위해 직접 설계하고 구현한 기술 영역입니다.
`GameManagerEx`가 날짜, 훈련, 스토리, 경연, 순위 발표를 하나의 진행 루틴으로 연결합니다. 각 단계가 끝나면 다음 상태로 넘어가도록 구성해 전체 게임 흐름을 한곳에서 추적할 수 있게 했습니다.
`Managers`를 진입점으로 Game, Data, UI, Resource, Story, Rank, Sound, Input 기능을 초기화했습니다. 여러 화면에서 필요한 기능에 같은 방식으로 접근하도록 프로젝트의 기본 구조를 만들었습니다.
연습생 정보와 대사, 곡, 순위 데이터를 코드에서 분리해 JSON으로 읽습니다. 콘텐츠가 변경되어도 핵심 로직을 직접 수정하는 범위를 줄였고, Google Sheet 데이터를 게임용 데이터로 변환하는 작업 흐름도 구성했습니다.
노트 생성, 이동, 입력 판정, 콤보, 점수 계산과 결과 화면을 구현했습니다. Unity Editor에서 곡의 타이밍에 맞춰 노트를 기록하고 저장할 수 있는 제작 도구를 추가해 반복 입력 작업을 줄였습니다.
하나의 Unity 씬에서 상황에 맞는 UI 프리팹을 교체하고, 공통 매니저가 게임 진행과 데이터, 화면, 사운드를 연결하는 구조입니다.
진행 단계가 바뀔 때 홈 또는 리듬 게임 UI가 두 번 생성되고 이전 팝업이 남는 경우가 있었습니다.
씬 전환 코드와 게임 진행 루틴이 각각 같은 UI 생성을 요청해 화면 생성 책임이 겹쳤습니다.
UI 생성은 씬 초기화 과정 한곳에서 담당하도록 중복 호출을 제거했습니다. 다음 루틴을 실행하기 전에 씬 UI와 팝업 UI를 함께 정리하도록 종료 순서도 통일했습니다.
전환 뒤 화면이 중복되거나 이전 팝업이 남는 현상을 없애고, 단계마다 같은 초기 상태에서 시작하도록 만들었습니다.
곡이 자동으로 끝났을 때와 나가기 버튼을 눌렀을 때 정리 작업과 다음 단계 이동이 서로 다르게 실행됐습니다.
두 종료 방식이 별도 로직을 사용해 입력 이벤트 해제와 오브젝트 정리가 중복되거나 빠질 수 있었습니다.
두 경로가 공통 `QuitAction`을 호출하도록 합치고, 이벤트 해제와 BGM 정지, 오브젝트 정리, 다음 루틴 이동의 순서를 하나로 만들었습니다.
종료 방식과 관계없이 리듬 게임을 안전하게 정리하고 다음 진행 단계로 한 번만 이동하도록 개선했습니다.