Refactor course maps and travel UI
This commit is contained in:
+68
-4
@@ -5,6 +5,7 @@
|
||||
## Scene Flow
|
||||
|
||||
`GameFlowManager`가 전체 흐름을 관리합니다.
|
||||
다음 리팩터링 이후에는 `GameFlowManager`가 화면을 직접 그리지 않고, 화면별 View를 호출하는 구조로 정리합니다.
|
||||
|
||||
```text
|
||||
Intro
|
||||
@@ -37,6 +38,8 @@ Intro
|
||||
- `Assets/Scripts/Maps/MapId.cs`
|
||||
- `Assets/Scripts/Maps/MapDefinition.cs`
|
||||
- `Assets/Scripts/Maps/MapDatabase.cs`
|
||||
- `Assets/Scripts/Maps/Definitions/*.cs`
|
||||
- `Assets/Scripts/Course/*.cs`
|
||||
|
||||
역할:
|
||||
|
||||
@@ -50,6 +53,27 @@ Intro
|
||||
- 다음 맵
|
||||
- 코스 패턴
|
||||
|
||||
현재는 `MapDefinition`이 독립 타입인 `CourseStep[]` 형태의 `openingSteps`, `loopSteps`를 들고 있습니다.
|
||||
맵 생성 코드는 `Maps/Definitions/*Map.cs`로 분리했습니다.
|
||||
다음 리팩터링에서는 `CourseProfile`을 만들고 맵별 파일에서 코스 프로필을 연결합니다.
|
||||
|
||||
목표 구조:
|
||||
|
||||
```text
|
||||
MapDatabase
|
||||
-> TutorialIncheonMap.Create()
|
||||
-> JapanMap.Create()
|
||||
-> ChinaMap.Create()
|
||||
-> AmericaMap.Create()
|
||||
|
||||
MapDefinition
|
||||
-> CourseProfile openingCourse
|
||||
-> CourseProfile loopCourse
|
||||
|
||||
PlatformSpawner
|
||||
-> CourseProfile 실행
|
||||
```
|
||||
|
||||
## Gameplay Runtime
|
||||
|
||||
관련 파일:
|
||||
@@ -73,20 +97,60 @@ Intro
|
||||
- 아이템 획득/방어 성공 이펙트
|
||||
- 도착 지점 통과 시 클리어
|
||||
|
||||
현재 `GameManager`는 플레이 진행과 UI를 함께 담당합니다.
|
||||
리팩터링 후에는 아래처럼 책임을 나눕니다.
|
||||
|
||||
| 책임 | 목표 스크립트 |
|
||||
| --- | --- |
|
||||
| 플레이 세션 총괄 | `GameManager` |
|
||||
| 거리/시간/클리어 판정 | `StageProgressTracker` |
|
||||
| 도착 게이트 생성/정리 | `FinishGateController` |
|
||||
| 목숨/피격/무적/방어막 | `DamageController` |
|
||||
| 아이템 효과 | `ItemEffectController` |
|
||||
| 왼쪽/오른쪽 HUD | `GameplayHudView` |
|
||||
| 튜토리얼 안내창 | `TutorialGuideView` |
|
||||
| 튜토리얼 단계 제어 | `TutorialGuideController` |
|
||||
|
||||
## Flow UI
|
||||
|
||||
현재 상태:
|
||||
|
||||
- `GameFlowManager` 안에 결과 화면, 면세점, 인트로, 맵 프리뷰, 디버그 메뉴 UI 생성 코드가 들어 있음
|
||||
- 공통 UI 오브젝트 생성과 에셋 로딩도 같은 파일에 있음
|
||||
|
||||
목표 구조:
|
||||
|
||||
| 책임 | 목표 스크립트 |
|
||||
| --- | --- |
|
||||
| 흐름 제어 | `GameFlowManager` |
|
||||
| 현재 화면 상태와 공통 데이터 | `FlowScreenContext` |
|
||||
| 인트로 화면 | `IntroScreenView` |
|
||||
| 오프닝 스토리 | `OpeningStoryScreenView` |
|
||||
| 결과 화면 | `ResultScreenView` |
|
||||
| 면세점 화면 | `DutyFreeShopView` |
|
||||
| 맵 프리뷰 | `MapPreviewScreenView` |
|
||||
| 디버그 메뉴 | `DebugMenuView` |
|
||||
| 공통 UI 생성 | `FlowUiFactory` |
|
||||
| UI 에셋 로딩 | `FlowAssetLoader` |
|
||||
|
||||
디버그 메뉴는 현재 `Esc`로 열며, 인트로/게임 시작/출국 실패/출국 성공/면세점/지도 화면으로 바로 이동합니다.
|
||||
리팩터링 후에도 개발 빌드 전용 기능으로 유지합니다.
|
||||
|
||||
## DutyFreeShop
|
||||
|
||||
현재 상태:
|
||||
|
||||
- 화면 흐름은 있음
|
||||
- 코드 오버레이 화면은 면세점 내부 배경과 상품 카드형 UI로 표시함
|
||||
- 도시락, 방어막, 운동화, 마일리지 카드의 보유 수량과 가격을 표시함
|
||||
- 구매 데이터 저장은 있음
|
||||
- 실제 장착 슬롯과 플레이 시작 전 준비 구조는 아직 미완성
|
||||
|
||||
다음 방향:
|
||||
|
||||
1. 면세점 구매 아이템을 보유 수량으로 표시
|
||||
2. 스테이지 시작 전 장착 슬롯에 넣기
|
||||
3. 가방 업그레이드로 슬롯 수 증가
|
||||
4. 스테이지 중 장착 아이템 사용/소모
|
||||
1. 스테이지 시작 전 장착 슬롯에 넣기
|
||||
2. 가방 업그레이드로 슬롯 수 증가
|
||||
3. 스테이지 중 장착 아이템 사용/소모
|
||||
|
||||
## Finish Gate
|
||||
|
||||
|
||||
Reference in New Issue
Block a user