작업 1 — 캐스팅 이펙트 제거:
- A08.asset OffsetDistance.x 1.5 → 0 (Player 위치 spawn)
- A08.asset CastFxPrefab null
작업 2 — 가장 가까운 적 방향 발사:
- ActiveSkillData.TargetEnemyOnFire (bool) 신규 필드
- ProjectileSpawner.Trigger — TargetEnemyOnFire=true 시 FindObjectsByType<EnemyController> 영역 nearest 검출·facing = (enemyPos - playerPos).normalized
- 적 0명 시 PlayerController.Facing fallback (기존 정합)
- A08.asset TargetEnemyOnFire=1
벽·발판 관통 X — Projectile.Update 영역 Layer 0·16 OverlapPoint 영역 영역 영역 정합 (변경 X).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
작업 1 — 캐스팅 이펙트 끝 지점 영역 투사체 발사:
- A08.asset OffsetDistance.x: 0 → 1.5
- ProjectileSpawner.Trigger 영역 spawnPos = playerPos + facing × 1.5 영역 캐스팅 끝 지점
- (FX_PinkArrow_Shoot 캐스팅 길이 영역 1.5 unit 추정·PD 측정 후 미세 조정 가능)
작업 2 — Hit FX 발사 시 Player 위치 발생 회피:
- 원인 추정: spawn 위치 = Player 위치 + OffsetDistance·작업 1 이전 OffsetDistance=0 영역 Player 위치 spawn → Player 근접 Enemy 즉시 hit → OnHit FX = Enemy 위치 ≈ Player 위치 → "Player에게 발생" 인식
- 작업 1 영역 spawn 위치 영역 Player 영역 1.5 우측 이동 → 자동 정정
- Projectile.OnTriggerEnter2D 영역 spawn 직후 0.1초 grace period 추가 (Time.unscaledTime - _spawnTime < 0.1f 영역 return) — 즉시 hit 차단·OnHitFx Player 위치 표시 회피
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
본 PM 자성 #16 (헌법급) — fileID 측정 영역 잘못된 방법 사용.
원인: 본 PM 직전 commit 5077f5d 영역 grep -m 1 "^--- !u!1 &" 영역 사용·**첫 GameObject** fileID 측정 → Unity prefab 영역 root GameObject 영역 X (자식 GameObject 영역).
PD Inspector 측정 결과:
- OnHitFx: "Fragments" (FX_PinkMagicArrow_Hit prefab 영역 자식 GameObject) → root 영역 정정
- CastFx: "sheet" (FX_PinkArrow_Shoot prefab 영역 자식 GameObject) → root 영역 정정
정정:
- OnHitFxPrefab fileID 1108032389789601088 → 7053558978182834975 (FX_PinkMagicArrow_Hit root)
- CastFxPrefab fileID 1571108645336829551 → 9207792929607053519 (FX_PinkArrow_Shoot root)
올바른 root fileID 측정 방법: awk 영역 m_Name == prefab name + m_Father=0 정합 GameObject ID.
재발 방지: prefab fileID 측정 시 첫 GameObject 영역 가정 X·반드시 m_Name + m_Father=0 정합 root 영역 확정.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
원인: FX_PinkMagicArrow prefab sprite 기본 방향 left·Projectile.Initialize 영역 atan2(facing)·우향 발사 시 sprite left 보임.
fix:
- ActiveSkillData.ProjectileAngleOffset (float, Range -360~360) 신규 필드 — prefab sprite 기본 방향 보정용
- Projectile.Initialize — angle = atan2 + ProjectileAngleOffset
- A08.asset — ProjectileAngleOffset 180 설정 (FX_PinkMagicArrow left → right 보정)
박스(판정) 영역 = 동시 회전·HitboxSize 대칭 가정 영역 영향 X.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
PD 지시 (2026-05-10):
1. Layer Lab Icon_PictoIcons 영역 — 6 스킬 영역 어울릴 아이콘 임의 판단·적용
2. 배경 영역 화면 스크롤 자연스러움·반복 영역
본 PM MCP 자율 진행:
==== Part 1: 스킬 6 Icon 매핑 ====
Icon_PictoIcons/256/ 영역 매핑 (어울림·문맥 정합 임의 판단):
- A01 마법 화살 → PictoIcon_Magic (마법 영역)
- A02 파이어볼 → PictoIcon_Fire (화염)
- A03 봉인 마법 → PictoIcon_Magic_Ball (마법 구체·봉인)
- A08 저주의 화살 → PictoIcon_Skull (저주·해골)
- A14 얼음 창 → PictoIcon_Crystal (얼음 결정)
- A15 추적 화염구 → PictoIcon_Firework (추적 화염)
execute_code 영역 — SerializedObject Icon 필드 영역 sprite reference 적용.
==== Part 2: 배경 Tiled World fix ====
Background_BgImage1:
- Camera 자식 영역 → World root 영역 영역 (Player 영역 영역 영역 자연 스크롤)
- Position (0, 0.5, 10)
- DrawMode = Tiled·tileMode = Continuous
- Size (500, 7) — 가로 500 unit·세로 Camera 영역 영역 7 unit 영역
- TextureImporter Mesh Type = FullRect·Wrap Mode = Repeat (Tiled 정합)
MCP Play 검증:
- bgVisible: true ✅
- bgDrawMode: Tiled ✅
- Player·Enemy 영역 영역 영역 → 자동 발사 영역 SkillSelectionUI 영역 정합