diff --git a/Assets/Scripts/Skills/Effectors/Projectile.cs b/Assets/Scripts/Skills/Effectors/Projectile.cs index 891e7bb..dab1baf 100644 --- a/Assets/Scripts/Skills/Effectors/Projectile.cs +++ b/Assets/Scripts/Skills/Effectors/Projectile.cs @@ -219,6 +219,8 @@ namespace EerieVillage.Skills.Effectors // PD 지시 2026-05-13 — ParticleSystem 명시 Play foreach (var ps in fx.GetComponentsInChildren(true)) ps.Play(true); AutoDestroyOnParticleEnd(fx); + // PD 지시 2026-05-13 — 진단 (회수 의무) + Debug.Log($"[Projectile] OnHit card={_data.CardId} OnHitFx spawned name={fx.name} pos=({fx.transform.position.x:F2},{fx.transform.position.y:F2})"); } // 부가 효과 (DoT·Stun·Slow·DebuffStack) — StatusApplier 위임 diff --git a/Assets/Scripts/Skills/Effectors/ProjectileSpawner.cs b/Assets/Scripts/Skills/Effectors/ProjectileSpawner.cs index c109613..0d690cd 100644 --- a/Assets/Scripts/Skills/Effectors/ProjectileSpawner.cs +++ b/Assets/Scripts/Skills/Effectors/ProjectileSpawner.cs @@ -36,6 +36,8 @@ namespace EerieVillage.Skills.Effectors + data.OffsetXY; // PD 지시 2026-05-13 — 시전 FX (A08 저주의 화살 등) Player 위치 spawn + // PD 지시 2026-05-13 — 진단 (회수 의무): CastFx·ProjectilePrefab·OnHitFx 영역 매핑 측정 + UnityEngine.Debug.Log($"[ProjectileSpawner] card={data.CardId} CastFx={(data.CastFxPrefab != null ? data.CastFxPrefab.name : \"NULL\")} ProjPrefab={(data.ProjectilePrefab != null ? data.ProjectilePrefab.name : \"NULL\")} OnHitFx={(data.OnHitFxPrefab != null ? data.OnHitFxPrefab.name : \"NULL\")}"); if (data.CastFxPrefab != null) { var castFx = Object.Instantiate(data.CastFxPrefab, playerTransform.position, Quaternion.Euler(0f, 0f, data.FxRotation)); @@ -44,6 +46,7 @@ namespace EerieVillage.Skills.Effectors // PD 지시 2026-05-13 — ParticleSystem 명시 Play foreach (var ps in castFx.GetComponentsInChildren(true)) ps.Play(true); FxAutoDestroyUnscaled.Attach(castFx, 2f); + UnityEngine.Debug.Log($"[ProjectileSpawner] CastFx spawned name={castFx.name} pos=({castFx.transform.position.x:F2},{castFx.transform.position.y:F2})"); } // 프리팹 로드 (data.ProjectilePrefab 우선·없으면 fallback)