diff --git a/Assets/Scripts/Skills/Effectors/Projectile.cs b/Assets/Scripts/Skills/Effectors/Projectile.cs index dab1baf..891e7bb 100644 --- a/Assets/Scripts/Skills/Effectors/Projectile.cs +++ b/Assets/Scripts/Skills/Effectors/Projectile.cs @@ -219,8 +219,6 @@ 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 281c9d0..d18534c 100644 --- a/Assets/Scripts/Skills/Effectors/ProjectileSpawner.cs +++ b/Assets/Scripts/Skills/Effectors/ProjectileSpawner.cs @@ -36,20 +36,15 @@ namespace EerieVillage.Skills.Effectors + data.OffsetXY; // PD 지시 2026-05-13 — 시전 FX (A08 저주의 화살 등) Player 위치 spawn - // PD 지시 2026-05-13 — 진단 (회수 의무): CastFx·ProjectilePrefab·OnHitFx 영역 매핑 측정 - string castName = data.CastFxPrefab != null ? data.CastFxPrefab.name : "NULL"; - string projName = data.ProjectilePrefab != null ? data.ProjectilePrefab.name : "NULL"; - string hitName = data.OnHitFxPrefab != null ? data.OnHitFxPrefab.name : "NULL"; - UnityEngine.Debug.Log($"[ProjectileSpawner] card={data.CardId} CastFx={castName} ProjPrefab={projName} OnHitFx={hitName}"); + // facing+ProjectileAngleOffset+FxRotation 영역 적용 (Projectile 본체 동일 패턴·sprite 반대 방향 정정) if (data.CastFxPrefab != null) { - var castFx = Object.Instantiate(data.CastFxPrefab, playerTransform.position, Quaternion.Euler(0f, 0f, data.FxRotation)); + float castAngle = Mathf.Atan2(facing.y, facing.x) * Mathf.Rad2Deg + data.ProjectileAngleOffset + data.FxRotation; + var castFx = Object.Instantiate(data.CastFxPrefab, playerTransform.position, Quaternion.Euler(0f, 0f, castAngle)); castFx.hideFlags = HideFlags.DontSave; castFx.transform.localScale *= data.HitFxScale; - // 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)