diff --git a/Assets/_Game/Scripts/Combat/LethalTrap.cs b/Assets/_Game/Scripts/Combat/LethalTrap.cs index 2b5084b..4562b84 100644 --- a/Assets/_Game/Scripts/Combat/LethalTrap.cs +++ b/Assets/_Game/Scripts/Combat/LethalTrap.cs @@ -89,9 +89,12 @@ namespace BaseGames.Combat hurtBox.ReceiveDamage(info); // 检测伤害后玩家存活状态: - // 若已死亡,PlayerController.TakeDamage 已在同帧内 Raise EVT_PlayerDied; + // 若已死亡,PlayerController.TakeDamage 已在同帧内 Raise EVT_PlayerDied, + // 走完整死亡流程,本组件不得再 Raise 检查点回溯; // 若存活,需由本组件 Raise 使其回到检查点。 - var damageable = other.transform.root.GetComponentInParent(); + // 从 HurtBox 自身向上查找(而非 transform.root):玩家被临时挂到 + // 其他父物体(如移动平台)下时 root 不是玩家根节点,会漏判死亡。 + var damageable = other.GetComponentInParent(); playerDiedFromDamage = damageable != null && !damageable.IsAlive; } }