diff --git a/Assets/Scripts/Skills/Effectors/Projectile.cs b/Assets/Scripts/Skills/Effectors/Projectile.cs index b3b4388..6347f02 100644 --- a/Assets/Scripts/Skills/Effectors/Projectile.cs +++ b/Assets/Scripts/Skills/Effectors/Projectile.cs @@ -58,12 +58,25 @@ namespace EerieVillage.Skills.Effectors Invoke(nameof(SelfDestruct), _lifetime); } + // BT12-Dev 2026-05-10 (PD #2 fix) — Wall Layer Mask (Layer 0 Default·Ground + Layer 16 Foreground·발판) + // Tilemap = Static collider·Projectile = Trigger·둘 다 Rigidbody2D 부재 → OnTriggerEnter2D 발화 X 영역 영역. + // → Update 영역 Physics2D.OverlapPoint 영역 Wall Layer 영역 영역 영역 SelfDestruct (영역 영역 영역 영역). + protected static readonly int WallLayerMask = (1 << 0) | (1 << 16); + protected virtual void Update() { transform.position += (Vector3)(_direction * _speed * Time.deltaTime); // BT12-Dev 2026-05-10 (PD #1) — 거리 제한 영역 영역 SelfDestruct if (Vector2.Distance(transform.position, _spawnPosition) >= _maxRange) + { + SelfDestruct(); + return; + } + + // BT12-Dev 2026-05-10 (PD #2 fix) — Wall 영역 OverlapPoint 영역 검출 (OnTriggerEnter2D 영역 Static collider 영역 발화 X) + var wallHit = Physics2D.OverlapPoint(transform.position, WallLayerMask); + if (wallHit != null) { SelfDestruct(); }