fix(BT12-Dev): Player ↔ Enemy 닿음 시 피해 복원 (지상만·점프 통과)
PD: "Enemy 닿으면 Player 피해 (밟기는 X·통과)" 근본: - 직전 commit adcb1ac에서 Player↔Enemy 충돌 검출 자체 폐기 - Player 피해 경로 부재 → 복원 필요·단 밟기는 X fix (EnemyController.Update): - _cachedPlayer 캐싱 (Tag·fallback) - Player.IsGrounded && VisualBounds.Intersects(Player.Bounds) → !IsInvulnerable 시 Player.health.Decrement (i-frame 적용) - 공중 (점프) 상태는 통과·밟기 판정 X·EnemyDeath·Bounce X 회귀 영역 X: - Enemy 사망 경로: Player 공격(Projectile·AttackHitbox)만 정합 - Player ↔ Enemy IgnoreCollision Awake 적용 정합·물리 통과 - Enemy ↔ Enemy IgnoreLayerCollision·발판 통과·scale·patrol 정합 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
adcb1ac1b1
commit
ddc0e250e5
|
|
@ -373,8 +373,27 @@ namespace Platformer.Mechanics
|
|||
if (control != null) control.move.x = 0f;
|
||||
}
|
||||
|
||||
// BT12-Dev 2026-05-11 — 밟기 공격 폐기 (PD 지시): Player ↔ Enemy 충돌 검출·PlayerEnemyCollision 발화 제거.
|
||||
// BT12-Dev 2026-05-11 — 밟기 공격 폐기 (PD 지시): PlayerEnemyCollision 발화 제거.
|
||||
// Player ↔ Enemy IgnoreCollision은 Awake 시점에 이미 적용되어 물리 통과 정합.
|
||||
//
|
||||
// PD 지시 2026-05-11 — Player ↔ Enemy 닿음 시 Player 피해 (밟기는 X·통과).
|
||||
// Player IsGrounded 상태에서만 피격·공중(점프) 상태는 통과.
|
||||
if (_cachedPlayer == null)
|
||||
{
|
||||
var pgo = GameObject.FindGameObjectWithTag("Player");
|
||||
if (pgo != null) _cachedPlayer = pgo.GetComponent<PlayerController>();
|
||||
if (_cachedPlayer == null) _cachedPlayer = Object.FindFirstObjectByType<PlayerController>();
|
||||
}
|
||||
if (_cachedPlayer != null && _cachedPlayer.health != null && _cachedPlayer.health.IsAlive)
|
||||
{
|
||||
if (_cachedPlayer.IsGrounded && VisualBounds.Intersects(_cachedPlayer.Bounds))
|
||||
{
|
||||
if (!_cachedPlayer.health.IsInvulnerable)
|
||||
{
|
||||
_cachedPlayer.health.Decrement();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OnDrawGizmos()
|
||||
|
|
|
|||
Loading…
Reference in New Issue