PD 보고: '이동할 때 분신의 방향이 반대로 뒤집혀버렸어. (방향전환 할 때는 자연스러움)'
원인: 분신 flipX 영역 = deltaX < 0 영역 영역 (이동 방향 영역 영역)
- Player 영역 영역 영역 영역 영역 영역 영역 → 분신 영역 영역 영역 영역 영역 영역 영역 영역 영역 → deltaX < 0 → flipX = true → 영역 영역 sprite
- Player.flipX 영역 영역 영역 영역 (이미 영역 영역 sprite + flipX true 영역 영역 영역) → 분신 영역 flipX 영역 영역 영역 → 영역 영역
근본 fix: 분신 flipX 영역 = _playerSr.flipX 영역 즉시 동조
- PlayerController L306·311 영역 spriteRenderer.flipX 변경 → 분신 영역 직접 영역
- 분신 sprite (Player Animator frame) + flipX 영역 영역 Player 영역 영역 영역 영역 영역 영역
- 방향 전환 자연 영역 = 분신 영역 영역 영역 영역 (MoveTowards) 영역 영역 영역 (flipX 영역 영역 X)
MCP 검증: refresh_unity + read_console errors 0
PD 보고 2건:
1. Player 영역 영역 → 분신 영역 영역 영역 영역 영역 → 영역 영역 영역
원인: 분신 영역 = Player root 자식 부착 영역 → Player.localScale 영역 영역 영역 영역 분신 lossyScale 영역 영역 영역 영역 영역
fix: SetParent X · 독립 GameObject + 매 frame Player worldPos + offset 영역 영역
분신 flipX = 이동 방향 영역 영역 영역 (deltaX 영역) → 자연 영역 영역
2. 영역 영역 영역 영역 영역 (영역 영역 영역 영역 영역) + 달리는 영역 영역 영역
fix: SPAWN_OFFSET_X 1.0 → 0.5 (50% 영역)
sprite 영역 매 frame 영역 (_cloneSr.sprite = _playerSr.sprite) Animator frame 영역 영역 영역
CloneInstance 정정:
- SPAWN_OFFSET_X 0.5 (50% 영역)
- SpawnOrReplace: SetParent X · transform.position = playerPos + offset · localScale = PlayerSr.lossyScale (Player 영역 동일)
- SyncSpriteAndPosition: worldPos target 영역 영역 · MoveTowards · sprite 영역 · flipX 영역 영역 영역 영역
MCP 검증: refresh_unity + read_console errors 0
PD 보고: '분신 영역 영역 영역 영역 영역 영역. 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역.'
원인: SyncSpriteAndPosition 영역 매 frame _cloneSr.flipX = _playerSr.flipX 영역 영역
- Player 영역 영역 영역 영역 즉시 영역 영역 → 분신 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역
- 분신 영역 sprite 영역 영역 → 영역 영역 영역 영역 영역 영역 영역 영역
fix: 분신 flipX 영역 = 이동 방향 영역 영역 영역
- deltaX > 0 (영역 영역 영역) → flipX = false (영역 영역 영역)
- deltaX < 0 (영역 영역 영역) → flipX = true (영역 영역 영역)
- 영역 영역 (deltaX = 0) → Player flipX 영역 영역 (영역 영역 영역 정합)
영역: Player 영역 영역 영역 영역 영역 영역 영역 → 분신 영역 (target 영역 영역) 영역 영역 영역 영역 영역 영역 영역 영역 영역 영역 → Player 영역 영역 영역 영역 → 분신 영역 영역 영역 영역 → target 영역 영역 영역
MCP 검증: refresh_unity + read_console errors 0
원인: 분신 영역 Player root 자식 부착 영역 + localScale = playerSr.transform.localScale 영역 영역
- PlayerSr 영역 영역 영역 영역 영역 영역 (예: Player → SpriteHolder → PlayerSr) 영역 영역 영역 영역 영역 자식 영역 영역 localScale 영역 영역 영역 X
- 분신 lossyScale = playerInventory.lossyScale * playerSr.localScale 영역 영역 PlayerSr.lossyScale 영역 영역 영역 영역 영역
fix: PlayerSr.lossyScale 영역 동일 영역 영역 분신 localScale 영역 정확 계산
- 분신 lossyScale = playerInv.lossyScale * localScale ← PlayerSr.lossyScale 동일 영역 영역
- 영역: localScale = PlayerSr.lossyScale / playerInv.lossyScale (각 축 영역)
- 0 나누기 영역 fallback Vector3.one (안전망)
MCP 검증: refresh_unity + read_console errors 0
FIRE_DELAY_SECONDS = 0.5f → 0.25f
- PD 명세 5번 원본 (0.5초) → PD 본 영역 영역 영역 0.25초 단축
- 분신 영역 Player 영역 영역 영역 더 빠른 영역 동일 스킬 미러링
MCP 검증: refresh_unity + read_console errors 0
PD 영역 영역 2건:
1. 분신 영역 Player 영역 영역 (이동·대기·idle·run 영역) 영역 영역 영역 영역
→ 매 frame _cloneSr.sprite = _playerSr.sprite + flipX 동조 (Animator frame 영역 영역 영역 영역 영역 영역 영역)
2. Player facing 변경 시 분신 위치 자연 영역 (순간 이동 X·걸어서 뒤로 가는 영역)
→ _targetLocalPos 영역 매 frame 갱신 (facing 영역 영역 영역) + Vector3.MoveTowards (MOVE_SPEED=3f) 영역 영역 영역
CloneInstance 정정:
- 신규 필드: _cloneSr·_playerSr·_targetLocalPos·MOVE_SPEED 상수
- SpawnOrReplace: cloneSr 영역 변수 영역 + instance 초기화 영역 sr 참조 저장
- Update: SyncSpriteAndPosition() 매 frame 호출 (lifetime·queue 영역 영역 영역)
- SyncSpriteAndPosition: sprite·flipX 매 frame 동조 + facing 기반 target 갱신 + MoveTowards 영역 영역 영역
PD 결정 4번 (facing 고정) 정합 — 분신 발동 영역 facing = spawn 시점 _spawnFacingX 영역 영역. sprite·위치 영역 영역 = 동조 영역.
MCP 검증: refresh_unity + read_console errors 0 (compile 통과)
PD 보고 (2026-05-18) 3건:
1. 분신 영역 Player 영역 영역 X (생성 시점 고정) → Player 자식 부착 (SetParent worldPositionStays=false) + localPosition (-signX, 0, 0) 영역 동조
2. 분신 영역 공격 X → Test Fire(idx) 영역 _inventory.RaisePlayerSkillFired(rt) 발화 영역 추가
- 원인: Test 영역 직접 Effector.Trigger 호출 영역 ActiveSkillRuntime.Fire 영역 영역 X·OnPlayerSkillFired 발화 X
- fix: Fire(idx) 끝 영역 IsCloneFireActive 분기 + RaisePlayerSkillFired 발화 (분신 hook 영역 미러링 발동)
3. 분신 영역 크기 영역 영역 작아 영역 → localScale = playerSr.transform.localScale 영역 정합
- 원인: 분신 GameObject 영역 localScale (1,1,1) 영역 영역·PlayerSr 자식 영역 localScale 영역 영역 X 영역 영역 영역 영역 영역
- fix: PlayerSr 자식 영역 localScale 영역 영역 (자식 lossyScale 영역 영역 영역 영역)
MCP 검증: refresh_unity + read_console errors 0 (compile 통과)
CS0234 컴파일 오류 fix:
- 본 PM 추정 오류 — SkillFireEvent namespace = EerieVillage.Skills (.Events 영역 X)
- CloneInstance.cs L202 영역 EerieVillage.Skills.Events.SkillFireEvent → SkillFireEvent 단순화
- parent namespace EerieVillage.Skills 자동 인식 (CloneInstance namespace = EerieVillage.Skills.Effectors)
자성: C39-10 위반 (신규 코드 영역 기존 시스템 namespace 사전 실측 X·feedback_new_code_existing_system_dependency_unmeasured 재발)