114 lines
2.5 KiB
Markdown
114 lines
2.5 KiB
Markdown
# Systems
|
|
|
|
게임의 주요 시스템 구조를 정리합니다.
|
|
|
|
## Scene Flow
|
|
|
|
`GameFlowManager`가 전체 흐름을 관리합니다.
|
|
|
|
```text
|
|
Intro
|
|
-> Opening Story
|
|
-> MapPreview
|
|
-> Main
|
|
-> Result
|
|
-> DutyFreeShop
|
|
-> MapPreview
|
|
```
|
|
|
|
## Save / Load
|
|
|
|
관련 파일:
|
|
|
|
- `Assets/Scripts/Flow/GameSaveData.cs`
|
|
- `Assets/Scripts/Flow/GameSaveManager.cs`
|
|
|
|
저장하는 것:
|
|
|
|
- 현재 맵 인덱스
|
|
- 해금된 맵 인덱스
|
|
- 총 마일리지
|
|
- 면세점 구매 아이템 수량
|
|
|
|
## Map Data
|
|
|
|
관련 파일:
|
|
|
|
- `Assets/Scripts/Maps/MapId.cs`
|
|
- `Assets/Scripts/Maps/MapDefinition.cs`
|
|
- `Assets/Scripts/Maps/MapDatabase.cs`
|
|
|
|
역할:
|
|
|
|
- 맵 이름
|
|
- 배경
|
|
- 발판 스킨
|
|
- 도착 지점
|
|
- 목표 거리
|
|
- 제한 시간
|
|
- 보상
|
|
- 다음 맵
|
|
- 코스 패턴
|
|
|
|
## Gameplay Runtime
|
|
|
|
관련 파일:
|
|
|
|
- `Assets/Scripts/GameManager.cs`
|
|
- `Assets/Scripts/PlayerController.cs`
|
|
- `Assets/Scripts/PlatformSpawner.cs`
|
|
- `Assets/Scripts/Platform.cs`
|
|
- `Assets/Scripts/ItemPickup.cs`
|
|
- `Assets/Scripts/ItemFeedbackEffect.cs`
|
|
- `Assets/Scripts/MileagePickup.cs`
|
|
- `Assets/Scripts/FinishGate.cs`
|
|
|
|
역할:
|
|
|
|
- 게임 속도 증가
|
|
- 거리/시간 계산
|
|
- 목숨/피격/무적
|
|
- 아이템 효과
|
|
- 발판/장애물/아이템 스폰
|
|
- 아이템 획득/방어 성공 이펙트
|
|
- 도착 지점 통과 시 클리어
|
|
|
|
## DutyFreeShop
|
|
|
|
현재 상태:
|
|
|
|
- 화면 흐름은 있음
|
|
- 구매 데이터 저장은 있음
|
|
- 실제 장착 슬롯과 플레이 시작 전 준비 구조는 아직 미완성
|
|
|
|
다음 방향:
|
|
|
|
1. 면세점 구매 아이템을 보유 수량으로 표시
|
|
2. 스테이지 시작 전 장착 슬롯에 넣기
|
|
3. 가방 업그레이드로 슬롯 수 증가
|
|
4. 스테이지 중 장착 아이템 사용/소모
|
|
|
|
## Finish Gate
|
|
|
|
`FinishGate`는 맵별 도착 지점 이미지를 `Resources`에서 불러옵니다.
|
|
|
|
현재 도착 지점:
|
|
|
|
- 튜토리얼: 출국 게이트
|
|
- 일본: 토리이
|
|
- 중국: 패방
|
|
- 미국: 자유의 여신상/뉴욕 도착지
|
|
|
|
플레이어가 도착 지점 트리거를 통과하면 클리어 처리합니다.
|
|
도착 게이트가 생성될 때는 `PlatformSpawner`가 빈 착지 발판을 같은 위치에 함께 깔아, 게이트가 배경 위에 떠 보이지 않게 합니다.
|
|
도착 게이트 뒤로는 새 발판, 장애물, 아이템 코스가 더 생성되지 않도록 스폰을 중지합니다.
|
|
|
|
## Minimap
|
|
|
|
하단 미니맵은 현재 삭제했습니다.
|
|
|
|
이유:
|
|
|
|
- 현재 튜토리얼/코스 설계에는 화면 하단 미니맵보다 실제 발판과 도착 지점 가독성이 중요합니다.
|
|
- 이후 필요하면 별도 작은 진행 바 형태로 다시 설계합니다.
|