using BaseGames.Combat;
using UnityEngine;
namespace BaseGames.Enemies
{
///
/// 接触伤害:组件启用时把 HitBox 切到 Interval 模式并持续激活,
/// 令敌人对停留在判定盒内的目标按固定间隔重复造成伤害。
/// 适用于无攻击动画的简单障碍物、环境危险或测试场景。
///
/// 重复命中由 HitBox 的 Interval 节奏(Enter/Exit 跟踪占用 + Update 轮询)驱动,
/// 不再依赖反复 Activate()——后者无法对已停留目标补发 OnTriggerEnter,会导致只命中一次。
///
[RequireComponent(typeof(HitBox))]
public class BodyContactDamage : MonoBehaviour
{
[SerializeField] private float _repeatInterval = 0.5f;
private HitBox _hitBox;
private void Awake() => _hitBox = GetComponent();
private void OnEnable()
{
_hitBox?.SetIntervalMode(_repeatInterval);
_hitBox?.Activate();
}
private void OnDisable() => _hitBox?.Deactivate();
}
}