From a3b07cc8650d4907794d1e595a648c832be61ee2 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期五, 27 二月 2026 18:49:44 +0800
Subject: [PATCH] 492 武将登场-客户端 拍脸界面优先级开出表格
---
Main/Config/ConfigManager.cs | 3 +
Main/Config/Configs/PopWinOrderConfig.cs | 44 ++++++++++++++++++++++
Main/Config/Configs/PopWinOrderConfig.cs.meta | 11 +++++
Main/Component/UI/Common/PopupWindowsProcessor.cs | 31 +++++++++++++++
4 files changed, 88 insertions(+), 1 deletions(-)
diff --git a/Main/Component/UI/Common/PopupWindowsProcessor.cs b/Main/Component/UI/Common/PopupWindowsProcessor.cs
index c9b541b..c63eaea 100644
--- a/Main/Component/UI/Common/PopupWindowsProcessor.cs
+++ b/Main/Component/UI/Common/PopupWindowsProcessor.cs
@@ -43,7 +43,36 @@
}
popupWindowQueue.Add(popupWindow);
- popupWindowQueue.Sort((x, y) => y.isNeedHomeWin.CompareTo(x.isNeedHomeWin));
+ popupWindowQueue.Sort((x, y) =>
+ {
+ // 1. 棣栧厛鎸� isNeedHomeWin 鎺掑簭 (true 鎺掑湪鍓嶉潰)
+ int homeWinCompare = y.isNeedHomeWin.CompareTo(x.isNeedHomeWin);
+ if (homeWinCompare != 0)
+ return homeWinCompare;
+
+ // 2. 鑾峰彇鍚勮嚜鐨� WinOrder (閫氳繃 WinName 鏌ユ壘閰嶇疆琛�)
+ int xOrder = GetWinOrder(x.window);
+ int yOrder = GetWinOrder(y.window);
+ int orderCompare = xOrder.CompareTo(yOrder);
+ if (orderCompare != 0)
+ return orderCompare;
+
+ // 3. WinOrder 鐩稿悓鏃讹紝鎸� ID 鎺掑簭 (ID 灏忕殑鎺掑墠闈�)
+ return x.functionId.CompareTo(y.functionId);
+ });
+ }
+
+ private int GetWinOrder(string winName)
+ {
+ var allConfigs = PopWinOrderConfig.GetValues();
+ foreach (var config in allConfigs)
+ {
+ if (config.WinName == winName)
+ {
+ return config.WinOrder;
+ }
+ }
+ return int.MinValue;
}
/// <summary>
diff --git a/Main/Config/ConfigManager.cs b/Main/Config/ConfigManager.cs
index bda8e4b..e34dd67 100644
--- a/Main/Config/ConfigManager.cs
+++ b/Main/Config/ConfigManager.cs
@@ -91,6 +91,7 @@
typeof(OrderInfoConfig),
typeof(PlayerAttrConfig),
typeof(PlayerFaceConfig),
+ typeof(PopWinOrderConfig),
typeof(PresetUnlockConfig),
typeof(PriorBundleConfig),
typeof(RandomNameConfig),
@@ -366,6 +367,8 @@
ClearConfigDictionary<PlayerAttrConfig>();
// 娓呯┖ PlayerFaceConfig 瀛楀吀
ClearConfigDictionary<PlayerFaceConfig>();
+ // 娓呯┖ PopWinOrderConfig 瀛楀吀
+ ClearConfigDictionary<PopWinOrderConfig>();
// 娓呯┖ PresetUnlockConfig 瀛楀吀
ClearConfigDictionary<PresetUnlockConfig>();
// 娓呯┖ PriorBundleConfig 瀛楀吀
diff --git a/Main/Config/Configs/PopWinOrderConfig.cs b/Main/Config/Configs/PopWinOrderConfig.cs
new file mode 100644
index 0000000..bb870db
--- /dev/null
+++ b/Main/Config/Configs/PopWinOrderConfig.cs
@@ -0,0 +1,44 @@
+锘�//--------------------------------------------------------
+// [Author]: YYL
+// [ Date ]: 2026骞�2鏈�27鏃�
+//--------------------------------------------------------
+
+using System.Collections.Generic;
+using System;
+using UnityEngine;
+using LitJson;
+
+public partial class PopWinOrderConfig : ConfigBase<int, PopWinOrderConfig>
+{
+ static PopWinOrderConfig()
+ {
+ // 璁块棶杩囬潤鎬佹瀯閫犲嚱鏁�
+ visit = true;
+ }
+
+ public int ID;
+ public string WinName;
+ public int WinOrder;
+
+ public override int LoadKey(string _key)
+ {
+ int key = GetKey(_key);
+ return key;
+ }
+
+ public override void LoadConfig(string input)
+ {
+ try {
+ string[] tables = input.Split('\t');
+ int.TryParse(tables[0],out ID);
+
+ WinName = tables[1];
+
+ int.TryParse(tables[2],out WinOrder);
+ }
+ catch (Exception exception)
+ {
+ Debug.LogError(exception);
+ }
+ }
+}
diff --git a/Main/Config/Configs/PopWinOrderConfig.cs.meta b/Main/Config/Configs/PopWinOrderConfig.cs.meta
new file mode 100644
index 0000000..d638be1
--- /dev/null
+++ b/Main/Config/Configs/PopWinOrderConfig.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a5c6d2fdaab52b44a824d683ed361ddf
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
--
Gitblit v1.8.0