diff --git a/Assets/Scripts/Skills/Effectors/Projectile.cs b/Assets/Scripts/Skills/Effectors/Projectile.cs index 51917e5..842bf94 100644 --- a/Assets/Scripts/Skills/Effectors/Projectile.cs +++ b/Assets/Scripts/Skills/Effectors/Projectile.cs @@ -34,7 +34,7 @@ namespace EerieVillage.Skills.Effectors protected Renderer[] _renderers; protected MaterialPropertyBlock _mpb; protected float[] _baseAlphas; - const float FADE_START_RATIO = 0.8f; + const float FADE_START_RATIO = 0.85f; /// /// ProjectileSpawner.Trigger 에서 Instantiate 직후 호출. @@ -253,10 +253,29 @@ namespace EerieVillage.Skills.Effectors } } + // PD 지시 2026-05-14 — 즉시 Destroy 영역 trail·glow particle 영역 즉시 영역 영역 영역 → 자연 fade out 후 Destroy + bool _fadeOutStarted = false; protected void SelfDestruct() { + if (_fadeOutStarted) return; + _fadeOutStarted = true; CancelInvoke(nameof(SelfDestruct)); - Destroy(gameObject); + + // 판정 종료 — Collider·자식 박스 즉시 disable·중복 hit 차단 + var col = GetComponent(); + if (col != null) col.enabled = false; + if (_debugBoxTransform != null) _debugBoxTransform.gameObject.SetActive(false); + // 이동 정지 + _speed = 0f; + + // ParticleSystem 영역 emission stop·기존 particle 영역 자연 fade + foreach (var ps in GetComponentsInChildren(true)) + { + ps.Stop(true, ParticleSystemStopBehavior.StopEmitting); + } + + // 0.5s 후 Destroy (기존 particle lifetime 영역 충분 영역 영역) + Destroy(gameObject, 0.5f); } // PD 지시 2026-05-13 — 시각화 박스 자식 reference (Update 영역 매 frame Inspector 정합 갱신용)