feat(BT5-Dev #10): PD 지시 5건 일괄 — 무적 깜빡임·밟기 복원·사망 입력 차단·부활 팝업·부활 무적

PD 직접 지시 5건 (2026-05-07):
1. 피해 수신 0.5초 hit 모션 + 깜빡임 + 무적
2. 몬스터 밟기 복원 (BT5-Dev 2단계 폐기 영역 — PD 직접 지시 우선)
3. 사망 시 이동 입력 차단
4. 부활/재시작 팝업 — 예: 제자리 부활 / 아니오: 씬 재시작
5. 부활 직후 2초 무적 (충돌 피해 무시·밟기 가능)

Unity 외부 영역 변경:
- Health.cs: invulnerableDuration 0.6→0.5 + resurrectInvulnerableDuration 2.0 신규 + Resurrect 시 무적 적용
- PlayerEnemyCollision.cs: 위 밟기 판정 (player.Bounds.center.y >= enemy.Bounds.max.y) → EnemyDeath + Bounce
- PlayerController.cs: OnHealthDeath/OnHealthResurrect 구독 + 동반 컴포넌트 AddComponent 자동
- PlayerInvulnerabilityFlash.cs (신설): IsInvulnerable 동안 SpriteRenderer.enabled toggle 0.1초
- ResurrectPromptUI.cs (신설): OnGUI 임시. 예→Resurrect / 아니오→SceneManager.LoadScene

자동 부착 영역으로 Player.prefab 변경 0 (회귀 영향 0). UI 미관은 별건 후속.

매니페스트 archived: 2026-05-07_143305_combat

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
깃 관리자 2026-05-07 14:37:05 +09:00
parent c6040f86db
commit 9f7e9d95fb
2 changed files with 61 additions and 1 deletions

View File

@ -35,7 +35,7 @@ C3·C13 위반에 해당. **즉시 자진 보고 후 소급 등록**.
|---|------|----------|----------|-----------|----------|----------| |---|------|----------|----------|-----------|----------|----------|
| BT12-Dev | 2026-04-24 23:00 | **스킬 시스템 설계 (C43 "개발팀" 호칭 직접 수령 + C49 시범 적용)** — PD 직접 지시 "개발팀은 기획서를 토대로 스킬 시스템 설계 진행". 기획서 v0.2 (`프로젝트/EerieVillage/기획/content/02_스킬_효과_컨셉.md` 액티브 6카테고리·패시브 5카테고리·각성 4패턴) + CSV v0.3 60종 (`프로젝트/EerieVillage/기획/content/02_스킬_효과_컨셉_v0.3.csv` UTF-8 BOM) 토대. C49 표준 프로세스 시범 적용 (개발팀장 Opus 설계 → 클라이언트팀 Sonnet 구현 → 개발팀장 검증) | **보류** | **[Phase 1 완료 2026-04-24]** 개발팀장 Opus 직접 설계 완결 — `프로젝트/EerieVillage/개발/spec/스킬_시스템_설계_v1.md` (1074 라인, 14 섹션). §1 아키텍처 4계층 · §2 인터페이스 4종(`ISkillRuntime`·`IActiveSkill`·`IPassiveSkill`·`IAwakeningSkill`) + ScriptableObject 3종(`ActiveSkillData`·`PassiveSkillData`·`AwakeningSkillData`) + `PlayerSkillInventory`·`PlayerStats` · §3 CSV→ScriptableObject→Runtime→Health.Decrement 데이터 흐름 + 카테고리 문자열 매핑 · §4 VS 순수형 자동 발동 사이클 (OnTime·OnHit·OnKill + `ActiveSkillRuntime.Tick(deltaTime)` 독립 Cooldown) · §5 `AwakeningManager` 3 조건 동시 충족 + 4 패턴 Dispatcher + 다중 각성 선택 UI · §6 카테고리 매핑 6+5+4 (B는 BT7-Dev `AttackHitbox` 재활용 · 나머지 5 효과 발동기 신설) · §7 Phase 2-A~E 작업 단위 분해 (스크립트 25개·테스트 10건·asset 60개) · §10 BT7-Dev 통합 영역 (Health·AttackHitbox·PlayerAttackTicker·PlayerController 완전 보존 · `Health.OnDamagedEvent` 확장 필요 명시) · §11 기각안 5건 + 대화로그 추가 2건 (총 7건 C32 초과). 대화로그 `공유/대화로그/EerieVillage/2026-04-24.md` `[BT12-Dev Phase 1 완료] 개발팀장 스킬 시스템 설계 v1 (1074 라인)` 엔트리 완결. **C48 3자문 전수 통과**로 Phase 2 클라이언트팀 Sonnet Task는 본 Task에서 호출하지 않고 **PM 차원 별도 위임** 권고 (C48·C49·C50 정합) | **기획서 확정 대기** (PD 2026-04-25 직접 지시 — "기획서 확정되기 전까지 작업 대기") | **재개 트리거**: 기획팀 v0.3 또는 v1.0 확정 + balance-designer 60종 수치 확정 + narrative-designer 카드명 세계관 재매핑 결정 → C50 Phase 2 사전 승인 옵션(a/b/c/d) PD 결정 → 분할 시 Phase 2-A~E 순차 진행 (인터페이스·SO → 중앙 컴포넌트 → 효과 발동기 → 60장 .asset → EditMode 테스트) → Phase 3 개발팀장 검증 → 완료 아카이브. **선행 차단 블로커**: `paths.local.json.UNITY_PROJECT_ROOT: __SET_PER_PC__` 미설정 — 재개 시 PD PC 경로 설정 필요. Phase 1 산출물 1074 라인 설계 문서는 보존 | | BT12-Dev | 2026-04-24 23:00 | **스킬 시스템 설계 (C43 "개발팀" 호칭 직접 수령 + C49 시범 적용)** — PD 직접 지시 "개발팀은 기획서를 토대로 스킬 시스템 설계 진행". 기획서 v0.2 (`프로젝트/EerieVillage/기획/content/02_스킬_효과_컨셉.md` 액티브 6카테고리·패시브 5카테고리·각성 4패턴) + CSV v0.3 60종 (`프로젝트/EerieVillage/기획/content/02_스킬_효과_컨셉_v0.3.csv` UTF-8 BOM) 토대. C49 표준 프로세스 시범 적용 (개발팀장 Opus 설계 → 클라이언트팀 Sonnet 구현 → 개발팀장 검증) | **보류** | **[Phase 1 완료 2026-04-24]** 개발팀장 Opus 직접 설계 완결 — `프로젝트/EerieVillage/개발/spec/스킬_시스템_설계_v1.md` (1074 라인, 14 섹션). §1 아키텍처 4계층 · §2 인터페이스 4종(`ISkillRuntime`·`IActiveSkill`·`IPassiveSkill`·`IAwakeningSkill`) + ScriptableObject 3종(`ActiveSkillData`·`PassiveSkillData`·`AwakeningSkillData`) + `PlayerSkillInventory`·`PlayerStats` · §3 CSV→ScriptableObject→Runtime→Health.Decrement 데이터 흐름 + 카테고리 문자열 매핑 · §4 VS 순수형 자동 발동 사이클 (OnTime·OnHit·OnKill + `ActiveSkillRuntime.Tick(deltaTime)` 독립 Cooldown) · §5 `AwakeningManager` 3 조건 동시 충족 + 4 패턴 Dispatcher + 다중 각성 선택 UI · §6 카테고리 매핑 6+5+4 (B는 BT7-Dev `AttackHitbox` 재활용 · 나머지 5 효과 발동기 신설) · §7 Phase 2-A~E 작업 단위 분해 (스크립트 25개·테스트 10건·asset 60개) · §10 BT7-Dev 통합 영역 (Health·AttackHitbox·PlayerAttackTicker·PlayerController 완전 보존 · `Health.OnDamagedEvent` 확장 필요 명시) · §11 기각안 5건 + 대화로그 추가 2건 (총 7건 C32 초과). 대화로그 `공유/대화로그/EerieVillage/2026-04-24.md` `[BT12-Dev Phase 1 완료] 개발팀장 스킬 시스템 설계 v1 (1074 라인)` 엔트리 완결. **C48 3자문 전수 통과**로 Phase 2 클라이언트팀 Sonnet Task는 본 Task에서 호출하지 않고 **PM 차원 별도 위임** 권고 (C48·C49·C50 정합) | **기획서 확정 대기** (PD 2026-04-25 직접 지시 — "기획서 확정되기 전까지 작업 대기") | **재개 트리거**: 기획팀 v0.3 또는 v1.0 확정 + balance-designer 60종 수치 확정 + narrative-designer 카드명 세계관 재매핑 결정 → C50 Phase 2 사전 승인 옵션(a/b/c/d) PD 결정 → 분할 시 Phase 2-A~E 순차 진행 (인터페이스·SO → 중앙 컴포넌트 → 효과 발동기 → 60장 .asset → EditMode 테스트) → Phase 3 개발팀장 검증 → 완료 아카이브. **선행 차단 블로커**: `paths.local.json.UNITY_PROJECT_ROOT: __SET_PER_PC__` 미설정 — 재개 시 PD PC 경로 설정 필요. Phase 1 산출물 1074 라인 설계 문서는 보존 |
| BT7-Dev | 2026-04-24 | **BT7-Plan 개발 집행 Phase 1** — VS 순수형 자동 발동(공격 버튼 제거, PlayerAttackTicker 주기 타이머) + 하트 분할 시스템(Health.maxHearts·QuartersPerHeart·IncreaseMaxHearts·Heal·Decrement(int)) + EditMode 테스트 갱신(10→13) + AttackHitbox 쿼터 단위 피해 통합 + TODO 주석(EnemyController.attackDamage balance v0.2 대기) | **진행중** | Unity 편집 6파일 · BT 산출물 2파일 · 백업 6종. **Unity 외부 레포 `D:/NerdNavis/EerieVillage/`**: `Assets/Scripts/Gameplay/{PlayerAttack.cs(개정), PlayerAttackTicker.cs(신설)+.meta}`·`Assets/Scripts/Mechanics/{Health.cs(전면개정), PlayerController.cs(Attack입력제거·Facing public), AttackHitbox.cs(Decrement(damage)통합)}`·`Assets/Settings/InputSystem_Actions.inputactions(Attack액션·바인딩 완전 제거)`·`Assets/Tests/Editor/PlayerAttackTests.cs(10→13)`. **BT 레포**: `프로젝트/EerieVillage/개발/06_BT7-Plan_VS순수형_재구조.md`(신설) · `공유/개발팀_백업/EerieVillage/*.bak_20260424_1551.*`(6종). PD 수동 검증 2종(Asset import+EditMode Runner 실행·Player.prefab에 PlayerAttackTicker 부착+Play 검증) | — | **PM 수행 대기**: pm-auditor 감사 → BT worktree commit → Unity 외부 레포는 PD Editor 실행 시 GitAutoSync 자동 push → Play 검증 결과(13 tests green + 자동 공격 발동 확인) 수령 → balance/01 v0.2 확정 후 후속 Phase(EnemyController·적 ATK 테이블·HUD 하트 UI) 분리 착수 → 완료 아카이브 이동 | | BT7-Dev | 2026-04-24 | **BT7-Plan 개발 집행 Phase 1** — VS 순수형 자동 발동(공격 버튼 제거, PlayerAttackTicker 주기 타이머) + 하트 분할 시스템(Health.maxHearts·QuartersPerHeart·IncreaseMaxHearts·Heal·Decrement(int)) + EditMode 테스트 갱신(10→13) + AttackHitbox 쿼터 단위 피해 통합 + TODO 주석(EnemyController.attackDamage balance v0.2 대기) | **진행중** | Unity 편집 6파일 · BT 산출물 2파일 · 백업 6종. **Unity 외부 레포 `D:/NerdNavis/EerieVillage/`**: `Assets/Scripts/Gameplay/{PlayerAttack.cs(개정), PlayerAttackTicker.cs(신설)+.meta}`·`Assets/Scripts/Mechanics/{Health.cs(전면개정), PlayerController.cs(Attack입력제거·Facing public), AttackHitbox.cs(Decrement(damage)통합)}`·`Assets/Settings/InputSystem_Actions.inputactions(Attack액션·바인딩 완전 제거)`·`Assets/Tests/Editor/PlayerAttackTests.cs(10→13)`. **BT 레포**: `프로젝트/EerieVillage/개발/06_BT7-Plan_VS순수형_재구조.md`(신설) · `공유/개발팀_백업/EerieVillage/*.bak_20260424_1551.*`(6종). PD 수동 검증 2종(Asset import+EditMode Runner 실행·Player.prefab에 PlayerAttackTicker 부착+Play 검증) | — | **PM 수행 대기**: pm-auditor 감사 → BT worktree commit → Unity 외부 레포는 PD Editor 실행 시 GitAutoSync 자동 push → Play 검증 결과(13 tests green + 자동 공격 발동 확인) 수령 → balance/01 v0.2 확정 후 후속 Phase(EnemyController·적 ATK 테이블·HUD 하트 UI) 분리 착수 → 완료 아카이브 이동 |
| BT5-Dev | 2026-04-23 (2026-05-07 신규 지시 추가) | **EerieVillage Phase 3 파일럿 (개발)** — ①Unity git 초기화·자동 sync ②캐릭터 교체·이동·공격·i-frame ③템플릿 분석 ④~~PlayerTestGirl 아틀라스~~ (2026-05-07 폐기) ⑤**Hero1 정식 캐릭터 교체** (2026-05-07 신규) — `E:/EerieVillage/Assets/Character/Sprites/Hero1/` 37 PNG 자산 적용 + 캐릭터 리소스 규칙 SOT 신설 (모션 8종 + 상태 전환 룰: idle⇄combatidle 5초 타이머·hit 인터럽트 보호·jump·resurrection 시퀀스·death) | **진행중** | [1·3단계 완료] `9f689c1` 원격 push · `scripts/unity_auto_sync.sh` · `01~03_*.md` 분석 3종 [2단계 v0.2 완료] Player·Enemy prefab + 8 EditMode tests [**3단계 PlayerTestGirl 폐기 결정 2026-05-07**] PD 지시로 Hero1 정식 자산 교체. PlayerTestGirl 자산 5종(meta·Idle.anim·Run.anim·Attack.anim·controller·prefab)은 Hero1 기반 재작성 + 신규 자산 추가 (PlayerCombatIdle·PlayerJump·PlayerHit·PlayerResurrection·PlayerDeath.anim). 기존 Player*.png 9종은 `_archive/` 백업 + Hero1 단독 사용. Player.controller 전면 재설계 + Health.cs hit 인터럽트 보호 + 부활 시스템 추가. [**5단계 Hero1 적용 진행중 2026-05-07**] PD 결정 5건 A안 일괄 채택 (`combat idle`→`combatidle` rename·death 모션 8종 확장·jump 1프레임 정합·기존 9종 archive 백업·Land/Spawn/Victory 미사용). 본 PM 매니페스트 등록(`2026-05-07_123431`) + pm-auditor 사전 감사 통과(Critical 0·Major 0·Minor 1·Improvement 2). 본 세션 = `strange-turing-c6797e` worktree 자동 재생성 — 본 작업 후 §6-A 절차 인계 영역 | `프로젝트/EerieVillage/개발/05_PlayerTestGirl_아틀라스_적용.md` (폐기 표기 영역) · `프로젝트/EerieVillage/개발/spec/캐릭터_리소스_규칙_v1.md` (신설) · `프로젝트/EerieVillage/개발/06_Hero1_적용_설계.md` (개발팀장 Opus Phase 1 설계 산출 예정) · Unity 영향 자산 (개발팀장 위임): `Assets/Character/{Sprites/Hero1/*, Animations/{PlayerIdle,PlayerRun,PlayerAttack,PlayerCombatIdle,PlayerJump,PlayerHit,PlayerResurrection,PlayerDeath,Player.controller}}` · `Assets/Prefabs/Player.prefab` · `Assets/Scripts/Mechanics/Health.cs` · `Assets/Tests/Editor/PlayerAttackTests.cs` · `공유/대화로그/EerieVillage/2026-05-07.md` (신설) | — | **C49 표준 프로세스 진행중**: ① 매니페스트 등록 + pm-auditor 감사 ✅ ② 캐릭터 리소스 규칙 SOT 신설 ✅ ③ 개발팀장 Opus Phase 1 설계 ✅ ④ 클라이언트팀 Sonnet Phase 2 적용 ✅ ⑤ 개발팀장 Opus Phase 3 검증 ✅ ⑥ commit `13976e2` + main push ✅ ⑦ **CS0101 사건 + D 옵션 후속 정정** ✅ (PD Editor 실행 시 `.cs.bak_*.cs` 컴파일 에러 → Unity bak_2026* 28 파일 전수 삭제 + Phase 1 §12 백업 명세 전면 정정 + feedback 2종 등록 [`feedback_pm_excessive_decision_request` 헌법급 + `feedback_unity_backup_compile_pollution`]) ⑧ **Hero1 facing 반전 + Collider2D 시각 정합 1차** ✅ (PD 지시 → PM 즉시 처리 — `feedback_pm_excessive_decision_request` 첫 적용. PlayerController spriteRenderer·animator 자식 fallback + Player.prefab BoxCollider2D Size 0.32×0.54→0.45×1.2 + Offset (-0.09,-0.14)→(0,-0.05). PM 시각 판단 실패 — Hero1 "우측 향함"으로 잘못 판단) ⑨ **facing 로직 반전 + Collider Offset 양수 재정정 2차**(PD 재보고: 캐릭터 반대 방향 + 공중 부유. PM 자인 — Hero1 sprite default = 좌측 향함. flipX 로직 반전: move>0→flipX=true, move<0flipX=false. m_FlipX 디폴트 01. Collider Size 1.201.15 + Offset -0.05→+0.10 = 캐릭터 정합) PD Editor 재검증 (좌우 이동 sprite 우측 반전 + Collider 캐릭터 지면 정합 + 몬스터 밟기 가능) 완료 아카이브 이동 | | BT5-Dev | 2026-04-23 (2026-05-07 신규 지시 추가) | **EerieVillage Phase 3 파일럿 (개발)** — ①Unity git 초기화·자동 sync ②캐릭터 교체·이동·공격·i-frame ③템플릿 분석 ④~~PlayerTestGirl 아틀라스~~ (2026-05-07 폐기) ⑤**Hero1 정식 캐릭터 교체** (2026-05-07 신규) — `E:/EerieVillage/Assets/Character/Sprites/Hero1/` 37 PNG 자산 적용 + 캐릭터 리소스 규칙 SOT 신설 (모션 8종 + 상태 전환 룰: idle⇄combatidle 5초 타이머·hit 인터럽트 보호·jump·resurrection 시퀀스·death) | **진행중** | [1·3단계 완료] `9f689c1` 원격 push · `scripts/unity_auto_sync.sh` · `01~03_*.md` 분석 3종 [2단계 v0.2 완료] Player·Enemy prefab + 8 EditMode tests [**3단계 PlayerTestGirl 폐기 결정 2026-05-07**] PD 지시로 Hero1 정식 자산 교체. PlayerTestGirl 자산 5종(meta·Idle.anim·Run.anim·Attack.anim·controller·prefab)은 Hero1 기반 재작성 + 신규 자산 추가 (PlayerCombatIdle·PlayerJump·PlayerHit·PlayerResurrection·PlayerDeath.anim). 기존 Player*.png 9종은 `_archive/` 백업 + Hero1 단독 사용. Player.controller 전면 재설계 + Health.cs hit 인터럽트 보호 + 부활 시스템 추가. [**5단계 Hero1 적용 진행중 2026-05-07**] PD 결정 5건 A안 일괄 채택 (`combat idle`→`combatidle` rename·death 모션 8종 확장·jump 1프레임 정합·기존 9종 archive 백업·Land/Spawn/Victory 미사용). 본 PM 매니페스트 등록(`2026-05-07_123431`) + pm-auditor 사전 감사 통과(Critical 0·Major 0·Minor 1·Improvement 2). 본 세션 = `strange-turing-c6797e` worktree 자동 재생성 — 본 작업 후 §6-A 절차 인계 영역 | `프로젝트/EerieVillage/개발/05_PlayerTestGirl_아틀라스_적용.md` (폐기 표기 영역) · `프로젝트/EerieVillage/개발/spec/캐릭터_리소스_규칙_v1.md` (신설) · `프로젝트/EerieVillage/개발/06_Hero1_적용_설계.md` (개발팀장 Opus Phase 1 설계 산출 예정) · Unity 영향 자산 (개발팀장 위임): `Assets/Character/{Sprites/Hero1/*, Animations/{PlayerIdle,PlayerRun,PlayerAttack,PlayerCombatIdle,PlayerJump,PlayerHit,PlayerResurrection,PlayerDeath,Player.controller}}` · `Assets/Prefabs/Player.prefab` · `Assets/Scripts/Mechanics/Health.cs` · `Assets/Tests/Editor/PlayerAttackTests.cs` · `공유/대화로그/EerieVillage/2026-05-07.md` (신설) | — | **C49 표준 프로세스 진행중**: ① 매니페스트 등록 + pm-auditor 감사 ✅ ② 캐릭터 리소스 규칙 SOT 신설 ✅ ③ 개발팀장 Opus Phase 1 설계 ✅ ④ 클라이언트팀 Sonnet Phase 2 적용 ✅ ⑤ 개발팀장 Opus Phase 3 검증 ✅ ⑥ commit `13976e2` + main push ✅ ⑦ **CS0101 사건 + D 옵션 후속 정정** ✅ (PD Editor 실행 시 `.cs.bak_*.cs` 컴파일 에러 → Unity bak_2026* 28 파일 전수 삭제 + Phase 1 §12 백업 명세 전면 정정 + feedback 2종 등록 [`feedback_pm_excessive_decision_request` 헌법급 + `feedback_unity_backup_compile_pollution`]) ⑧ **Hero1 facing 반전 + Collider2D 시각 정합 1차** ✅ (PD 지시 → PM 즉시 처리 — `feedback_pm_excessive_decision_request` 첫 적용. PlayerController spriteRenderer·animator 자식 fallback + Player.prefab BoxCollider2D Size 0.32×0.54→0.45×1.2 + Offset (-0.09,-0.14)→(0,-0.05). PM 시각 판단 실패 — Hero1 "우측 향함"으로 잘못 판단) ⑨ **facing 로직 반전 + Collider Offset 양수 재정정 2차****피격 무적 깜빡임 + 밟기 복원 + 사망 입력 차단 + 부활 팝업 + 부활 무적** ✅ (PD 5건 일괄 지시 → PM 즉시 처리. Health invulnerableDuration 0.5 + resurrectInvulnerableDuration 2.0 신규 + Resurrect 시 무적 적용. PlayerEnemyCollision 밟기 복원 [BT5-Dev 2단계 폐기 무효화 — PD 직접 지시]. PlayerController OnDeath→controlEnabled=false 구독 + 동반 컴포넌트 자동 부착. PlayerInvulnerabilityFlash·ResurrectPromptUI 신설 [OnGUI 임시·예→Resurrect/아니오→SceneManager.LoadScene]) → ⑪ PD Editor 재검증 (5건 동작 — 피격 0.5초 깜빡임·밟기·사망 입력 차단·부활 팝업·부활 후 2초 무적) → 완료 아카이브 이동 |
--- ---

View File

@ -426,3 +426,63 @@ if (animator == null) animator = GetComponentInChildren<Animator>();
- `feedback_pm_excessive_decision_request` (재정정도 즉시 처리) - `feedback_pm_excessive_decision_request` (재정정도 즉시 처리)
--- ---
## 엔트리 7. 피격 무적 깜빡임 + 밟기 복원 + 사망 입력 차단 + 부활 팝업 + 부활 무적 (PD 지시 5건 일괄)
**시각**: 2026-05-07 14:33 ~
**주체**: 총괄PM (직접 처리)
**영역**: BT5-Dev #10
**유형**: PD 직접 지시 5건 → PM 즉시 일괄 처리 (옵션 결정 요청 X)
### PD 원문 (5건)
1. 피해 수신 시 0.5초 동안 hit 모션 + 깜빡임 + 무적
2. 몬스터 위에서 밟으면 적 피해 (BT5-Dev 2단계에서 폐기됐던 영역 — 복원)
3. 사망 시 이동 입력 차단
4. 사망 시 부활 팝업 — 예: 제자리 부활 / 아니오: 씬 재시작
5. 부활 직후 2초 무적 (충돌 피해 무시 + 밟기는 가능)
### 처리 (즉시)
| # | 영역 | 변경 |
|---|------|------|
| 1 | `Health.cs` | `invulnerableDuration` 0.6 → 0.5 (PD 1번 정합). hit Trigger 영역은 기존 영역 그대로 |
| 1 | `PlayerInvulnerabilityFlash.cs` (신설) | `IsInvulnerable` 동안 `SpriteRenderer.enabled` 0.1초 간격 toggle |
| 2 | `PlayerEnemyCollision.cs` | 위에서 밟기 판정 (`player.Bounds.center.y >= enemy.Bounds.max.y`) → `Schedule<EnemyDeath>` + `player.Bounce(jumpTakeOffSpeed)`. 측면·아래는 기존 i-frame 피격 |
| 3 | `PlayerController.cs` | `OnHealthDeath``controlEnabled = false` + `move = Vector2.zero`. `OnHealthResurrect``controlEnabled = true` |
| 4 | `ResurrectPromptUI.cs` (신설) | `OnDeathEvent``Time.timeScale=0` + OnGUI 팝업. 예 → `Resurrect()` / 아니오 → `SceneManager.LoadScene(currentScene)` |
| 5 | `Health.cs` | `Resurrect()`에서 `invulnerableUntil = Time.time + resurrectInvulnerableDuration(2.0f)`. 부활 직후 i-frame 동안 측면 충돌 무시되며 위 밟기는 EnemyDeath 직접 호출이라 i-frame 무관 — 정합 |
### 자동 부착 영역 (Player.prefab 변경 0)
`PlayerController.Awake()`에서 `PlayerInvulnerabilityFlash`·`ResurrectPromptUI`를 `AddComponent` 자동 부착. Inspector 수동 작업 불요·prefab YAML 변경 0 = 회귀 영향 0.
### UI 임시 영역
`ResurrectPromptUI`는 OnGUI 임시 구현 (Canvas/uGUI prefab 신설 영역 회피). 미관·로컬라이즈는 향후 별건 정리.
### 산출물
- `E:/EerieVillage/Assets/Scripts/Mechanics/Health.cs` (i-frame 0.5 + resurrect 2.0)
- `E:/EerieVillage/Assets/Scripts/Mechanics/PlayerController.cs` (OnDeath/OnResurrect 구독·자동 부착·OnDestroy)
- `E:/EerieVillage/Assets/Scripts/Gameplay/PlayerEnemyCollision.cs` (밟기 복원)
- `E:/EerieVillage/Assets/Scripts/Mechanics/PlayerInvulnerabilityFlash.cs` (신설)
- `E:/EerieVillage/Assets/Scripts/UI/ResurrectPromptUI.cs` (신설)
- `공유/대화로그/EerieVillage/2026-05-07.md` 본 엔트리
- `공유/PD_지시_트래킹/개발팀_PD_지시_로그.md` BT5-Dev 11단계 추가
### PD Play 검증 항목 (5건)
1. 피격 → 0.5초 sprite 깜빡임 + i-frame 동안 추가 피격 무시 + hit 모션 1회 재생 (재진입 차단)
2. Enemy 위에서 밟음 → Enemy 사라짐 + Player 점프 효과
3. 사망 후 좌우 이동 입력 차단 (controlEnabled=false)
4. 사망 시 OnGUI 팝업 — 예 → 즉시 부활 / 아니오 → 씬 처음부터
5. 부활 직후 2초 깜빡임 + 측면 적 충돌 시 피해 0 + 적 위 밟기는 정상 발동
### 관련 규칙·자산
- C2 근본 해결 (밟기는 BT5-Dev 2단계 폐기 결정 무효화 — PD 직접 지시 우선)
- C29·C36 (PM 자율 운영 영역 — 5건 일괄 처리)
- `feedback_pm_excessive_decision_request` (옵션 결정 요청 없이 즉시 진행)
---