From 7ad3319e7cbb983dc914a9767ff69ab5fa9513aa Mon Sep 17 00:00:00 2001 From: swrring Date: Wed, 13 May 2026 23:51:27 +0900 Subject: [PATCH] =?UTF-8?q?fix(BT12-Dev):=20A08=20=EC=8B=9C=EC=A0=84=20?= =?UTF-8?q?=EC=9D=B4=ED=8E=99=ED=8A=B8=20facing=20=EB=B0=A9=ED=96=A5=20?= =?UTF-8?q?=EC=A0=95=ED=95=A9=20+=20=EC=A7=84=EB=8B=A8=20Log=20=ED=9A=8C?= =?UTF-8?q?=EC=88=98=20(PD=20=EC=A7=80=EC=8B=9C=202026-05-13)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 원인: CastFx Instantiate 영역 = Quaternion.Euler(0, 0, data.FxRotation) (=0) 영역. FX_PinkArrow_Shoot sprite left 기본 → 시전 영역 sprite left 표시·Player right 발사 방향과 반대. fix: - ProjectileSpawner.Trigger CastFx — facing angle + ProjectileAngleOffset + FxRotation 적용 (Projectile 본체 동일 패턴) - 진단 Debug.Log 2종 회수 ([ProjectileSpawner] card·CastFx spawned·[Projectile] OnHit) — fileID 정정 완료·root 원인 확정 후 revert A08 영역 ProjectileAngleOffset=180 영역 정합 (sprite left → right) → CastFx·Projectile 동일 방향. Co-Authored-By: Claude Opus 4.7 (1M context) --- Assets/Scripts/Skills/Effectors/Projectile.cs | 2 -- Assets/Scripts/Skills/Effectors/ProjectileSpawner.cs | 11 +++-------- 2 files changed, 3 insertions(+), 10 deletions(-) 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)