From f6ae1fc5eb8b3ac6458ed473edf597072a2683d7 Mon Sep 17 00:00:00 2001
From: hch <305670599@qq.com>
Date: 星期日, 14 九月 2025 22:42:33 +0800
Subject: [PATCH] Merge branch 'master' of http://mobile.secondworld.net.cn:10010/r/Project_SG_scripts

---
 Main/System/Battle/Motion/MotionBase.cs |   32 ++++++++++++++++++++++++++------
 1 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/Main/System/Battle/Motion/MotionBase.cs b/Main/System/Battle/Motion/MotionBase.cs
index 7a35dd2..40d4d06 100644
--- a/Main/System/Battle/Motion/MotionBase.cs
+++ b/Main/System/Battle/Motion/MotionBase.cs
@@ -24,7 +24,6 @@
     // 鍔ㄧ敾浜嬩欢
     public Action OnAttackAnimationComplete;
     public Action OnHitAnimationComplete;
-    public Action<string> onAnimationComplete;
     
     private List<Action> runActionList = new List<Action>();
 
@@ -119,8 +118,8 @@
         {
             if (trackEntryCompleteDict.TryGetValue(currentTrackEntry, out var __onComplete))
             {
-                __onComplete?.Invoke();
                 trackEntryCompleteDict.Remove(currentTrackEntry);
+                __onComplete?.Invoke();
             }
             currentTrackEntry = null;
         }
@@ -333,14 +332,12 @@
             OnHitAnimationComplete?.Invoke();
             PlayAnimation(MotionName.idle, true);
         }
-
-        onAnimationComplete?.Invoke(animation);
         
         // 鍙皟鐢ㄦ湰娆rackEntry鐨勫洖璋�
         if (trackEntryCompleteDict.TryGetValue(trackEntry, out var cb))
         {
-            cb?.Invoke();
             trackEntryCompleteDict.Remove(trackEntry);
+            cb?.Invoke();
         }
     }
 
@@ -348,10 +345,33 @@
 
     public virtual void Run()
     {
+// #if UNITY_EDITOR
+//         List<int> removeIndex = new List<int>();
+// #endif
         for (int i = runActionList.Count - 1; i >= 0; i--)
         {
-            runActionList[i]?.Invoke();
+// #if UNITY_EDITOR
+//             try
+//             {
+// #endif
+                runActionList[i]?.Invoke();
+// #if UNITY_EDITOR
+//             }
+//             catch (System.Exception ex)
+//             {
+//                 removeIndex.Add(i);
+//                 BattleDebug.LogError($"鎵цRunAction鏃跺彂鐢熷紓甯�: {ex.Message}\n{ex.StackTrace}");
+//             }
+// #endif
         }
+
+// #if UNITY_EDITOR
+//         // 绉婚櫎澶辫触鐨凙ction
+//         for (int i = 0; i < removeIndex.Count; i++)
+//         {
+//             runActionList.RemoveAt(removeIndex[i]);
+//         }
+// #endif
     }
 
     public virtual void Pause()

--
Gitblit v1.8.0