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