# 스테이지 선택 화면 설정 가이드

## 🎮 완성 이미지

스테이지 선택 화면 구성:
1. **Stage 1 버튼** - 항상 잠금 해제
2. **Stage 2 버튼** - Stage 1 클리어 시 잠금 해제
3. **뒤로 가기 버튼** - 타이틀 화면으로 복귀

---

## 📋 Unity 에디터 설정

### 1단계: 새 씬 만들기

1. **Project 창에서 Assets/Scenes 폴더 우클릭**
   - Create → Scene
   - 이름: `StageSelect`

2. **StageSelect.unity 더블클릭해서 열기**

---

### 2단계: Canvas 설정

1. **Hierarchy 우클릭 → UI → Canvas**
   - 이름: `StageSelectCanvas`

2. **Canvas 설정**:
   - Canvas Scaler 컴포넌트에서:
     - UI Scale Mode: **Scale With Screen Size**
     - Reference Resolution: **1920 x 1080**

---

### 3단계: 배경 추가 (선택사항)

1. **Hierarchy에서 StageSelectCanvas 우클릭 → UI → Image**
   - 이름: `Background`

2. **Background 설정**:
   - Rect Transform: **Stretch** (Alt+클릭)
   - Color: 원하는 배경색 (예: 어두운 회색)

---

### 4단계: 제목 텍스트 추가

1. **Hierarchy에서 StageSelectCanvas 우클릭 → UI → Text - TextMeshPro**
   - 이름: `TitleText`

2. **TitleText 설정**:
   - **Rect Transform**:
     - Anchor: **Top Center**
     - Pos Y: **-100**
     - Width: **800**, Height: **100**
   - **TextMeshPro**:
     - Text: **"스테이지 선택"**
     - Font Size: **60**
     - Alignment: **Center & Middle**

---

### 5단계: Stage 1 버튼 만들기

1. **Hierarchy에서 StageSelectCanvas 우클릭 → UI → Button - TextMeshPro**
   - 이름: `Stage1Button`

2. **Stage1Button 설정**:
   - **Rect Transform**:
     - Anchor: **Middle Center**
     - Pos X: **-300**, Pos Y: **0**
     - Width: **400**, Height: **150**

3. **버튼 텍스트 수정**:
   - Stage1Button → Text (TMP) 선택
   - Text: **"Stage 1"**
   - Font Size: **48**

4. **StageButton 컴포넌트 추가**:
   - Stage1Button 선택 → Add Component → `StageButton`
   - **Stage Number**: **1**
   - **Scene Name**: **Stage1**
   - **Button**: Stage1Button 자체를 드래그
   - **Stage Text**: Text (TMP) 드래그

5. **잠금 아이콘 추가** (선택사항):
   - Stage1Button 우클릭 → UI → Image
   - 이름: `LockedIcon`
   - 🔒 이모지나 자물쇠 이미지 사용
   - StageButton 컴포넌트의 **Locked Icon**에 드래그

6. **완료 아이콘 추가** (선택사항):
   - Stage1Button 우클릭 → UI → Image
   - 이름: `CompletedIcon`
   - ✓ 체크 표시 이미지 사용
   - StageButton 컴포넌트의 **Completed Icon**에 드래그

---

### 6단계: Stage 2 버튼 만들기

1. **Hierarchy에서 Stage1Button 복제**:
   - Stage1Button 우클릭 → Duplicate
   - 이름: `Stage2Button`

2. **Stage2Button 설정**:
   - **Rect Transform**:
     - Pos X: **300** (우측으로 이동)
   - **StageButton 컴포넌트**:
     - **Stage Number**: **2**
     - **Scene Name**: **Stage2**

3. **버튼 텍스트 수정**:
   - Stage2Button → Text (TMP)
   - Text: **"Stage 2"**

---

### 7단계: 뒤로 가기 버튼

1. **Hierarchy에서 StageSelectCanvas 우클릭 → UI → Button - TextMeshPro**
   - 이름: `BackButton`

2. **BackButton 설정**:
   - **Rect Transform**:
     - Anchor: **Bottom Left**
     - Pos X: **150**, Pos Y: **100**
     - Width: **200**, Height: **80**

3. **버튼 텍스트**:
   - Text: **"← 뒤로"**
   - Font Size: **36**

---

### 8단계: StageSelectManager 설정

1. **Hierarchy에서 빈 GameObject 생성**:
   - 우클릭 → Create Empty
   - 이름: `StageSelectManager`

2. **StageSelectManager 컴포넌트 추가**:
   - Add Component → `StageSelectManager`

3. **Inspector에서 연결**:
   - **Stage Buttons**: Size를 **2**로 설정
     - Element 0: Stage1Button 드래그
     - Element 1: Stage2Button 드래그
   - **Back Button**: BackButton 드래그
   - **Title Scene Name**: **TitleScreen**

---

### 9단계: Build Settings 업데이트

1. **File → Build Settings**

2. **StageSelect.unity 추가**:
   - StageSelect 씬 열린 상태에서 **Add Open Scenes**

3. **씬 순서**:
   - TitleScreen (index 0)
   - **StageSelect (index 1)** ← 새로 추가
   - Stage1 (index 2)
   - Stage2 (index 3)

---

### 10단계: TitleScreen 수정

1. **TitleScreen.unity 열기**

2. **TitleScreenManager 선택**

3. **Inspector에서**:
   - **First Level Scene Name**: Stage1 → **StageSelect**로 변경

---

## 🎮 테스트하기

### 초기 상태 테스트

1. **TitleScreen.unity에서 Play**

2. **게임 시작 버튼 클릭**

3. **확인 사항**:
   - ✓ StageSelect 화면으로 이동
   - ✓ Stage 1 버튼이 활성화 (흰색)
   - ✓ Stage 2 버튼이 비활성화 (회색, 잠금 아이콘)
   - ✓ Stage 1 클릭 시 Stage 1로 이동

### 진행도 저장 테스트

1. **Stage 1 플레이**

2. **Goal에 도달**

3. **다시 StageSelect로 돌아오기** (R 키로 재시작 후 뒤로)

4. **확인 사항**:
   - ✓ Stage 1에 완료 표시 (✓ 아이콘)
   - ✓ Stage 2 버튼이 잠금 해제 (활성화)
   - ✓ Stage 2 클릭 가능

---

## 🎨 커스터마이징

### 버튼 색상 변경

**StageButton 컴포넌트에서**:
- **Unlocked Color**: 잠금 해제 시 색상 (기본: 흰색)
- **Locked Color**: 잠금 시 색상 (기본: 회색)

### 더 많은 스테이지 추가

1. **Stage2Button 복제**
2. **StageButton 컴포넌트**:
   - Stage Number: 3
   - Scene Name: Stage3
3. **StageSelectManager**:
   - Stage Buttons 배열에 추가

### 진행도 초기화 (디버그용)

**StageSelectManager 선택 후**:
- Inspector 우측 메뉴 (⋮) → **Reset All Progress**

---

## 🐛 문제 해결

### Stage 2가 잠금 해제 안 된다면?
- Stage 1의 Goal에 도달했는지 확인
- Console에서 "Stage 1 marked as completed!" 메시지 확인
- ProgressManager가 씬에 있는지 확인 (자동 생성됨)

### 버튼이 안 눌린다면?
- EventSystem이 있는지 확인
- StageButton 컴포넌트의 Button 필드가 할당되었는지 확인

### 뒤로 가기가 안 된다면?
- Build Settings에 TitleScreen이 추가되어 있는지 확인
- StageSelectManager의 Title Scene Name이 정확한지 확인

---

## 💾 진행도 저장 시스템

**저장 위치**: PlayerPrefs (로컬 저장)
- Windows: 레지스트리
- Mac: ~/Library/Preferences
- 게임 재시작해도 유지됨

**저장 키**:
- `Stage1_Completed`: Stage 1 클리어 여부
- `Stage2_Completed`: Stage 2 클리어 여부

**초기화 방법**:
- StageSelectManager → 우클릭 → Reset All Progress
- 또는 PlayerPrefs 수동 삭제

---

## 🎉 완성!

이제 게임 흐름:
1. **타이틀 화면** → 게임 시작
2. **스테이지 선택** → Stage 1 선택
3. **Stage 1 플레이** → Goal 도달
4. **자동으로 Stage 2로 이동** (또는 StageSelect로 복귀)
5. **Stage 2 잠금 해제!**

**다음 단계:**
- 각 스테이지별 별점 시스템
- 최고 기록 저장
- 스테이지 미리보기 이미지
