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