yyl
2026-05-11 51b0f6ed9f4e1d3bb6f8144470b46908c7699a96
Main/System/Battle/SkillEffect/SkillEffect.cs
@@ -16,6 +16,18 @@
    protected Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit;
    // 缓存HurtList的List副本,避免每次onHit回调时重复ToList分配
    private List<HB427_tagSCUseSkill.tagSCUseSkillHurt> _hurtListCache;
    protected List<HB427_tagSCUseSkill.tagSCUseSkillHurt> HurtListAsList
    {
        get
        {
            if (_hurtListCache == null)
                _hurtListCache = new List<HB427_tagSCUseSkill.tagSCUseSkillHurt>(tagUseSkillAttack.HurtList);
            return _hurtListCache;
        }
    }
    public SkillEffect(SkillBase _skillBase, SkillConfig _skillConfig, SkillSkinConfig _skillSkinConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
    {
        skillBase = _skillBase;
@@ -78,6 +90,14 @@
        return isFinish && isFinishFrameEnd;
    }
#if UNITY_EDITOR
    /// <summary>卡死诊断用:打印 SkillEffect 内部 isFinish / isFinishFrameEnd 等标志位。</summary>
    public virtual string DumpState()
    {
        return $"{GetType().Name} isFinish={isFinish} isFinishFrameEnd={isFinishFrameEnd}";
    }
#endif
    public virtual void ForceFinished()
    {
        isFinish = true;