From b8f554f03a6114db353736741eda63bdd6c63854 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期三, 22 四月 2026 10:06:52 +0800
Subject: [PATCH] 125 战斗 战斗代码整理 修复卡死问题
---
Main/System/Battle/BattleField/BattleField.cs | 28 ++++++++++++++++++++++++++++
1 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/Main/System/Battle/BattleField/BattleField.cs b/Main/System/Battle/BattleField/BattleField.cs
index f53eaba..39cdac7 100644
--- a/Main/System/Battle/BattleField/BattleField.cs
+++ b/Main/System/Battle/BattleField/BattleField.cs
@@ -107,6 +107,21 @@
if (castingSkillDict.TryGetValue(objID, out skillBases))
{
+#if UNITY_EDITOR
+ // 璇婃柇锛氬悓涓�涓� caster 宸茬粡鍦� casting锛岃鏄庡墠涓�涓妧鑳芥病姝g‘ Remove銆�
+ // 鎵撳嵃鐜板瓨鎶�鑳界殑 skillId / StateFlags锛屾柟渚垮畾浣嶆硠婕忕偣銆�
+ var sb = new System.Text.StringBuilder();
+ sb.Append("BattleField.AddCastingSkill 鍙戠幇鍚� caster 宸叉湁 ").Append(skillBases.Count).Append(" 涓� casting 鎶�鑳芥湭娓呯悊锛歰bjID=").Append(objID);
+ sb.Append(" 鏂板叆=skillId=").Append(skill?.skillConfig?.SkillID ?? 0);
+ for (int i = 0; i < skillBases.Count; i++)
+ {
+ var s = skillBases[i];
+ sb.Append("\n [").Append(i).Append("] skillId=")
+ .Append(s?.skillConfig?.SkillID ?? 0)
+ .Append(" StateFlags=").Append(s == null ? "null" : s.StateFlagsForDebug.ToString());
+ }
+ BattleDebug.LogError(sb.ToString());
+#endif
skillBases.Add(skill);
}
else
@@ -123,6 +138,13 @@
if (castingSkillDict.TryGetValue(objID, out skillBases))
{
+#if UNITY_EDITOR
+ bool existed = skillBases.Contains(skillBase);
+ if (!existed)
+ {
+ BattleDebug.LogError($"BattleField.RemoveCastingSkill 鐩爣涓嶅湪 casting 鍒楄〃锛歰bjID={objID} skillId={skillBase?.skillConfig?.SkillID ?? 0}");
+ }
+#endif
skillBases.Remove(skillBase);
if (skillBases.Count == 0)
@@ -130,6 +152,12 @@
castingSkillDict.Remove(objID);
}
}
+#if UNITY_EDITOR
+ else
+ {
+ BattleDebug.LogError($"BattleField.RemoveCastingSkill objID 涓嶅湪瀛楀吀閲岋細objID={objID} skillId={skillBase?.skillConfig?.SkillID ?? 0}");
+ }
+#endif
}
public bool IsCastingSkill(long objID)
--
Gitblit v1.8.0