From 64d526e0f5b9f49fe5bd6dcf043f5071d996e7ad Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 24 四月 2026 11:04:29 +0800
Subject: [PATCH] 125 战斗 修复步练师的被动bug
---
Main/System/Battle/Motion/MotionBase.cs | 29 +++++++++++++++++++++++++++++
1 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/Main/System/Battle/Motion/MotionBase.cs b/Main/System/Battle/Motion/MotionBase.cs
index 56be39a..12d5ef5 100644
--- a/Main/System/Battle/Motion/MotionBase.cs
+++ b/Main/System/Battle/Motion/MotionBase.cs
@@ -45,6 +45,13 @@
private bool playingSkill = false;
private bool _playingSkillWithAnim = false;
+#if UNITY_EDITOR
+ // [鍗℃璇婃柇] 璁板綍鏄皝鎶� playingSkillWithAnim 閿佷负 true銆佸湪鍝竴甯э紝渚� SkillBase.ReportStuckIfNeeded 浣跨敤銆�
+ // 涓嶅仛 Run() 鍐� watchdog锛堥伩鍏嶅埛灞忥級锛涘彧鍦� SkillBase 鑷韩鍙戠幇鍗℃鏃朵竴娆℃�ф妸杩欎簺淇℃伅鎵撳嚭鏉ャ��
+ private int _pswaSetTrueFrame = -1;
+ private int _pswaSetTrueSkillId = 0;
+ private string _pswaSetTrueStack = null;
+#endif
private bool playingSkillWithAnim
{
get => _playingSkillWithAnim;
@@ -58,6 +65,19 @@
// 姣忔鍙樻洿鎵撳嵃鏍堬紝瀹氫綅鍒板簳鏄皝鎶� playingSkillWithAnim 璁� true 浜嗐�佽皝娓�/涓嶆竻
BattleDebug.LogError($"[MotionBase owner={owner} hash={GetHashCode()}] playingSkillWithAnim {_playingSkillWithAnim} -> {value}\n"
+ UnityEngine.StackTraceUtility.ExtractStackTrace());
+ }
+ // [鍗℃璇婃柇] 缁存姢閿佺殑鎸佹湁鑰呬俊鎭紙涓婁竴杞殑瀛楁琚洖婊氫簡锛岃繖閲屾槸鏈�灏忓繀瑕侀泦鍚堬級
+ if (value && !_playingSkillWithAnim)
+ {
+ _pswaSetTrueFrame = UnityEngine.Time.frameCount;
+ _pswaSetTrueStack = UnityEngine.StackTraceUtility.ExtractStackTrace();
+ // skillId 鐢� ExecuteSkillAnim 绱ф帴鐫�璧嬪�硷紙setter 杩欓噷鎷夸笉鍒帮級
+ }
+ else if (!value && _playingSkillWithAnim)
+ {
+ _pswaSetTrueFrame = -1;
+ _pswaSetTrueSkillId = 0;
+ _pswaSetTrueStack = null;
}
#endif
_playingSkillWithAnim = value;
@@ -335,6 +355,10 @@
activeSkillTracks[trackIndex] = skillTrack;
playingSkillWithAnim = true;
+#if UNITY_EDITOR
+ // [鍗℃璇婃柇] setter 閲屾嬁涓嶅埌 skillId锛岃繖閲岃ˉ涓婏紝渚� SkillBase.ReportStuckIfNeeded dump
+ _pswaSetTrueSkillId = skillConfig != null ? skillConfig.SkillID : 0;
+#endif
}
playingSkill = true;
@@ -857,6 +881,11 @@
#if UNITY_EDITOR
/// <summary>鍗℃璇婃柇鐢細鏆撮湶 playingSkillWithAnim 鏍囧織浣嶃��</summary>
public bool PlayingSkillWithAnimForDebug => playingSkillWithAnim;
+
+ // [鍗℃璇婃柇] 缁� SkillBase 鍗℃鎶ュ憡鐢細璋佹妸 playingSkillWithAnim 閿佷负 true銆佸湪鍝竴甯с��
+ public int PlayingSkillAnimOwnerSkillIdForDebug => _pswaSetTrueSkillId;
+ public int PlayingSkillAnimOwnerFrameForDebug => _pswaSetTrueFrame;
+ public string PlayingSkillAnimOwnerStackForDebug => _pswaSetTrueStack;
#endif
public bool CanStartDeath()
--
Gitblit v1.8.0