8.3 KiB
EerieVillage 대화로그 — 2026-05-10
엔트리 1 (신설). BT12-Dev PD Console 분석 + 본 PM 가설 5회 부정확 자성 + AttackHitbox·EnemyDeath 진단 도구 추가 (PD A+B)
시각: 2026-05-10 신 세션 (vigilant-cray-45cc32 worktree·전 세션 진단 도구 직후 일자 변경)
주체: 총괄PM 직접 (단순 반복 카탈로그 v1·~5K) + pm-auditor 사전 감사 통과 + Minor 1 + Improvement 1
대상: BT12-Dev-Death 후속 — PD Console 분석 + 본 PM 가설 5회 누적 부정확 자성 + EnemyDeath 사망 처리 X 근본 진단 도구 2차 추가
유형: PD A+B 동시 결정 → 본 PM A 진단 도구 즉시 적용 + B PD 자료 능동 요청
PD 직접 발화 (2026-05-09~10)
5차 보고: "여전히 적이 죽지 않아" Console 공유 (스크린샷) 본 PM 진단 보고 후: "A+B 진행해" — A 진단 Debug.Log 추가 + B PD Enemy.prefab Inspector·Animator Controller 자료 공유 동시
PD Console 정확 분석 (가설 X·실측)
| 시각 | 이벤트 | 호출자 |
|---|---|---|
| t=4.15 | Health@Enemy Decrement(damage=3) hp 4→1 | AttackHitbox (BT7-Dev 자동 근접·[Projectile][Enter] other=Enemy 부재) |
| t=4.43 | [Projectile][Enter] other=Player → Return PlayerController | Projectile (Player 차단·정합) |
| t=4.66 | Health@Enemy Decrement(damage=3) hp 1→0 | AttackHitbox (즉사) — line 70 !IsAlive true → line 75 Schedule<EnemyDeath> 호출 의무 |
| t=5.35 | [Projectile][Enter] other=Enemy layer=14 → isEnemy=True → Health not alive hp=0 | Projectile (Enemy 영역 살아있음·Collider 활성) |
핵심 발견 (코드 실측 + Console 정합):
- 투사체는 Enemy를 hit X
- AttackHitbox(BT7-Dev VS 순수형 자동 근접 공격) 영역 hit
- t=5.35 영역 Enemy._collider 활성 = EnemyDeath.Execute 호출 X 영역 확정 (line 20
_collider.enabled = false적용 X)
본 PM 가설 5회 누적 부정확 자성 (자진 고지·feedback 환기)
| 회차 | 가설 | 결과 |
|---|---|---|
| 1 | HealthIsZero sender 가드 | ✅ Player 사망 X 정합 |
| 2 | 잔존 투사체 옵션 J | ✅ 정합 |
| 3 | DebuffStackLimit + Rigidbody2D 추가 | ❌ Rigidbody2D 회귀 유발 |
| 4 | Rigidbody2D 제거·"이전 시점 복원" 가정 | ❌ 여전히 피격 X |
| 5 | "투사체 사망 처리 경로 부재" 옵션 A·B·C 권고 | ❌ 투사체 hit X·AttackHitbox hit·잘못된 진단 |
적용 feedback: feedback_pm_root_diagnosis_priority (헌법급) 2차 적용 — 가설 즉시 중단·실측 우선·진단 도구 우선·PD 능동 자료 수령.
A 진단 Debug.Log 추가 (옵션)
Assets/Scripts/Mechanics/AttackHitbox.cs:75 직전:
Debug.Log($"[AttackHitbox][Schedule] col={col.name} enemy={(enemy != null ? enemy.name : "NULL")} hp={health.CurrentHP} t={Time.time:F2}");
Assets/Scripts/Gameplay/EnemyDeath.cs:16 진입 (Improvement 1·_collider 동시 캡처):
Debug.Log($"[EnemyDeath][Execute] enemy={(enemy != null ? enemy.name : "NULL")} collider={(enemy != null && enemy._collider != null ? enemy._collider.enabled.ToString() : "NULL")} t={Time.time:F2}");
→ Schedule 호출 영역 + Execute 호출 영역 + collider 상태 영역 정확 진단.
B PD 자료 능동 요청 (병렬·실측 정확화)
| # | 자료 |
|---|---|
| 1 | Enemy.prefab Inspector 스크린샷 — Layer (14)·Components (Rigidbody2D type·Collider2D 영역 root + 자식·EnemyController·Health·Animator) |
| 2 | Enemy.controller (Animator Controller) Parameters 스크린샷 — dead·death·hit parameter 등재 영역 |
| 3 | Console 영역 [AttackHitbox][Schedule]·[EnemyDeath][Execute] 출력 영역 — A 적용 후 PD Play 영역 결과 |
결정·근거·영향 (pm-auditor 권고 4종 수용)
결정: PD A+B 동시 — A 본 PM 진단 도구 추가 (~3K) + B PD Inspector·Controller 자료 공유 동시.
근거: 본 PM 가설 5회 누적 부정확 (회귀 1회) → feedback_pm_root_diagnosis_priority 2차 의무 영역 진단 도구 우선·PD 능동 자료 수령 영역 정확 진단.
영향:
- 회귀 위험 0건 (Debug.Log만 추가·기존 분기 변경 X)
- PD Console 영역 [AttackHitbox][Schedule] 출력 여부 + [EnemyDeath][Execute] 출력 여부 영역 정확 진단
- B Inspector 자료 영역 자식 collider·Animator parameter·Layer 영역 검증
pm-auditor 사전 감사 결과 (통과 + Minor 1 + Improvement 1)
| 등급 | 영역 | 본 PM 적용 |
|---|---|---|
| 통과 | C2·C5·C19-2·C28·C42-7 J·회귀 위험 0건·prefix 통일·feedback 의무 적용 | — |
| Minor 1 | 회수 트리거·책임·commit 메시지 PD 지시 로그·대화로그 영역 명시 | ✅ 본 엔트리 + PD 지시 로그 영역 명시 |
| Improvement 1 | EnemyDeath.Execute 진입 영역 _collider.enabled 동시 캡처 | ✅ 채택 (정합 검증 영역 분량 최소) |
회수 의무 명시 (Minor 1·헌법급 명문화)
| 항목 | 내용 |
|---|---|
| 회수 트리거 | PD 사망 원인 확정 직후 (또는 PD 종결 선언) |
| 회수 책임 | 본 PM (집행 PM·dev-team-lead 폐기 영역) |
| 회수 commit 메시지 | revert(BT12-Dev): AttackHitbox·EnemyDeath 진단 Debug.Log 회수 |
| 회수 대상 | AttackHitbox.cs:75 직전 1줄 + EnemyDeath.cs:16 진입 1줄 (총 2줄) |
| 회수 시점 | [Projectile] 진단 (Projectile.cs 8 분기) 영역 동시 회수 검토 (별도 commit 또는 통합) |
EerieVillage commit d6764ce (본 PM 직접 push)
- 2 파일 수정 (AttackHitbox.cs + EnemyDeath.cs ·각 1줄 추가) · 7 insertions · 0 deletions
- main 영역 push 정합 (
d27a63f..d6764ce) - staging 정합
본 PM 자성 신규 1건 (가설 누적 부정확)
| # | 자성 |
|---|---|
| 12 | 가설 5회 누적 부정확 — feedback_pm_root_diagnosis_priority 2차 적용 영역. 본 PM 가설 영역 코드·Console 실측 선행 X 영역 추정 영역 가설. 5차 옵션 A·B·C 권고 영역 = 투사체 hit 가정 자체 오류 (Console 실측 영역 AttackHitbox hit 영역 정합). PD가 Console 영역 능동 공유 영역 영역 본 PM 진단 정정 영역. 재발 차단: 가설 작성 직전 PD Console 영역 능동 수령 + 코드 실측 + StackTrace 영역 호출자 영역 직접 확인 의무 (3 단계 실측). |
산출물
- EerieVillage (commit
d6764ce):Assets/Scripts/Mechanics/AttackHitbox.cs(line 75 직전 진단 Debug.Log 1줄·회수 의무 주석)Assets/Scripts/Gameplay/EnemyDeath.cs(line 16 진입 진단 Debug.Log 1줄·회수 의무 주석)
- BurningTimes (본 commit):
- 본 엔트리 1 (2026-05-10 신규 일자)
- PD 지시 로그 BT12-Dev-Death 영역 fix 6 (진단 도구 2차) 행 갱신·진행 상태 갱신
관련 규칙·자산
- C2 근본 해결 (proxy 영역 X·진단 도구 = 근본 원인 확정 도구·feedback 2차 적용)
- C3 이슈 은폐 X (가설 5회 누적 부정확 자진 고지)
- C5·C44 정직성·팩트 우선 (Console + 코드 실측 영역 본 PM 가설 부정 자진 고지)
- C19-2 PD A+B 명시 = C1 승인 정합
- C28 코드 수정 무승인 외 — PD 직접 지시 영역
- C35-9 매니페스트 등록 정합
- C36 PM 자율 외연 (PD A+B 명시·방향·원칙 변경 X)
- C42-7 J 그룹 작업 전 시스템 반영 실측 (Console + 코드 Read 정합)
- C49 단순 반복 카탈로그 v1
- C50 분량 (~5K·PD 사전 승인 30~50K 영역 정합)
- feedback
feedback_pm_root_diagnosis_priority2차 적용 (가설 5회 누적 부정확) - feedback
feedback_new_code_existing_system_dependency_unmeasured정합 (참조 클래스 정의 Read 정합)
후속 (PM 의무·회수 의무)
- PD A 결과 — Editor Refresh + Play → Console 영역
[AttackHitbox][Schedule]·[EnemyDeath][Execute]출력 영역 결과 공유 - PD B 결과 — Enemy.prefab Inspector + Enemy.controller Parameters 스크린샷 공유
- 양 자료 수령 후 본 PM 정확 fix 진행 → 사망 원인 확정 → 진단 도구 회수 (Projectile + AttackHitbox + EnemyDeath 통합)
- BT12-Dev-Death 완료 아카이브 이동 (사망 처리 정합 + Animator parameter 영역 후속 별도 안건 분리 가능)
- balance-designer 60종 정식 수치·Enemy 사망 처리 발화 경로·line 65 주석 (이전 후속)