From 1ab047b5fdd933c38ba0519ec2e83a44512ea8d7 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 26 三月 2026 17:46:11 +0800
Subject: [PATCH] webgl代码合并 1

---
 Main/System/Battle/RecordPlayer/RecordPlayer.cs |   51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/Main/System/Battle/RecordPlayer/RecordPlayer.cs b/Main/System/Battle/RecordPlayer/RecordPlayer.cs
index 83300c5..35a6f77 100644
--- a/Main/System/Battle/RecordPlayer/RecordPlayer.cs
+++ b/Main/System/Battle/RecordPlayer/RecordPlayer.cs
@@ -4,6 +4,17 @@
 
 public class RecordPlayer
 {
+
+
+    //  鍒濆鍖栦箣鍓嶅厑璁哥殑record action绫诲瀷
+    private readonly static List<Type> allowedActionTypes = new List<Type>()
+    {
+        typeof(BattleStartAction),
+        typeof(PreloadResAction),
+    };
+
+    private List<RecordAction> tempPreinitRecordActionList = new List<RecordAction>();
+
     protected BattleField battleField;
 
     private Queue<RecordAction> recordActionQueue = new Queue<RecordAction>();
@@ -48,6 +59,7 @@
     public void PlayRecord(RecordAction recordAction)
     {
         if (recordAction == null) return;
+        if (!CheckRecordType(recordAction)) return;
         recordAction.actionOwner = this;
         // Debug.LogError("Enqueue record action " + recordAction.GetType() + " to queue");
         if (isForceFinish || stepForcefinish)
@@ -62,6 +74,7 @@
     public void PlayRecord(RecordAction recordAction, RecordAction waitingAnimeAction)
     {
         if (recordAction == null) return;
+        if (!CheckRecordType(recordAction)) return;
         recordAction.actionOwner = this;
         // Debug.LogError("Enqueue record action " + recordAction.GetType() + " to queue");
         if (isForceFinish || stepForcefinish)
@@ -85,6 +98,7 @@
     public void InsertRecord(RecordAction recordAction, int position = 0)
     {
         if (recordAction == null) return;
+        if (!CheckRecordType(recordAction)) return;
         recordAction.actionOwner = this;
         if (isForceFinish || stepForcefinish)
         {
@@ -270,8 +284,45 @@
         }
     }
 
+    private bool CheckRecordType(RecordAction recordAction)
+    {
+        if (battleField.IsInit)
+        {
+            return true;
+        }
+        else
+        {
+            if (!allowedActionTypes.Contains(recordAction.GetType()))
+            {
+                tempPreinitRecordActionList.Add(recordAction);
+                return false;
+            }
+            else
+            {
+                return true;
+            }
+        }
+    }
+
     public virtual void Run()
     {
+
+        if (battleField != null)
+        {
+            if (!battleField.IsInit)
+            {
+                return;
+            }
+            if (tempPreinitRecordActionList.Count > 0)
+            {
+                foreach (var action in tempPreinitRecordActionList)
+                {
+                    PlayRecord(action);
+                }
+                tempPreinitRecordActionList.Clear();
+            }
+        }
+
         ImmediatelyPlayRun();
 
         // 绛夊緟涓嬩竴涓猘ction

--
Gitblit v1.8.0