From 47bae3318d299fed896620e70829a21087e7b0c1 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期五, 27 二月 2026 19:22:10 +0800
Subject: [PATCH] 492 武将登场-客户端 主键界面右侧按钮优化逻辑,100毫秒判断一次需不要刷新,避免刷新按钮个数次造成卡顿

---
 Main/System/Main/HomeGridLayout.cs |   44 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 39 insertions(+), 5 deletions(-)

diff --git a/Main/System/Main/HomeGridLayout.cs b/Main/System/Main/HomeGridLayout.cs
index 141a92c..5d5f533 100644
--- a/Main/System/Main/HomeGridLayout.cs
+++ b/Main/System/Main/HomeGridLayout.cs
@@ -10,16 +10,50 @@
     public Vector2 spacing = new Vector2(10f, 10f);    // 鍏冪礌闂磋窛
     public int rows = 7; // 鍥哄畾琛屾暟
 
-    private void OnRectTransformDimensionsChange() => UpdateLayout();
-    private void OnTransformChildrenChanged() => UpdateLayout();
+    private bool _isDirty = true; //浼樺寲鏂板锛氳剰鏍囪涓庤鏃跺櫒  鍒濆璁句负 true锛岀‘淇濈涓�甯т細鎺掔増
+    private float _checkTimer = 0f;
+    private const float CHECK_INTERVAL = 0.1f; // 100ms 妫�鏌ラ棿闅�
 
-#if UNITY_EDITOR
+    /// <summary>
+    /// 渚涘閮ㄦ垨瀛愬厓绱犺皟鐢紝鏍囪褰撳墠缃戞牸闇�瑕侀噸鏂版帓鐗�
+    /// </summary>
+    public void MarkAsDirty()
+    {
+        _isDirty = true;
+    }
+
+    // 灏哄鎴栧瓙鑺傜偣鏁伴噺鍙戠敓鍙樺寲鏃讹紝鍚屾牱鍙墦涓婅剰鏍囪
+    private void OnRectTransformDimensionsChange() => MarkAsDirty();
+    private void OnTransformChildrenChanged() => MarkAsDirty();
+
     private void Update()
     {
-        if (!Application.isPlaying) UpdateLayout();
-    }
+#if UNITY_EDITOR
+        // 缂栬緫鍣ㄩ潪杩愯鐘舵�佷笅锛圗dit Mode锛塙pdate 甯х巼涓嶇ǔ瀹氾紝涓轰簡鏂逛究鎷栨嫿棰勮锛屼緷鐒舵湁鑴忔爣璁板氨绔嬪嵆鏇存柊
+        if (!Application.isPlaying)
+        {
+            if (_isDirty)
+            {
+                UpdateLayout();
+                _isDirty = false;
+            }
+            return;
+        }
 #endif
 
+        // 杩愯鏃讹紙Play Mode锛夋瘡 100ms 杞涓�娆�
+        _checkTimer += Time.deltaTime;
+        if (_checkTimer >= CHECK_INTERVAL)
+        {
+            if (_isDirty)
+            {
+                UpdateLayout();
+                _isDirty = false; // 鎺掔増瀹屾垚鍚庯紝娓呴櫎鏍囧織浣�
+            }
+            _checkTimer = 0f; // 閲嶇疆璁℃椂鍣�
+        }
+    }
+
     public void UpdateLayout()
     {
         if (rows <= 0 || transform.childCount == 0) return;

--
Gitblit v1.8.0