From b68f7b60504a5030b89375170f797a788a5b6ec8 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 23 十月 2025 14:54:04 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts

---
 Main/System/NewBieGuidance/NewBieMask.cs   |    4 ++++
 Main/System/NewBieGuidance/NewBieCenter.cs |    6 +++++-
 Main/System/NewBieGuidance/NewBieWin.cs    |   33 ++++++++++++++++++++++++++++-----
 3 files changed, 37 insertions(+), 6 deletions(-)

diff --git a/Main/System/NewBieGuidance/NewBieCenter.cs b/Main/System/NewBieGuidance/NewBieCenter.cs
index 9d59430..9611412 100644
--- a/Main/System/NewBieGuidance/NewBieCenter.cs
+++ b/Main/System/NewBieGuidance/NewBieCenter.cs
@@ -215,8 +215,12 @@
     bool WaitGuide(int _id)
     {
         var config = GuideConfig.Get(_id);
-        if (UIManager.Instance.ExistAnyFullScreenOrMaskWin(config.WinName))
+        //瑕佸紩瀵肩殑鐣岄潰涓婃湁鍏朵粬鐣岄潰鐩栦綇锛屽姞鍏ラ槦鍒楃瓑寰呭叾浠栫晫闈㈠叧闂殑鏃跺�欏啀瑙﹀彂璇ョ晫闈㈠紩瀵�
+        // if (UIManager.Instance.ExistAnyFullScreenOrMaskWin(config.WinName))
+        var ui = UIManager.Instance.GetUI(config.WinName);
+        if (ui.IsActive() && ui.childrenUI != null && ui.childrenUI.Count > 0)
         {
+            //濡傛灉瀛愮晫闈㈡槸蹇呴』鎸傚湪璇ョ晫闈笂鍒囦笖娌℃湁钂欑増鐩栦綇鐨勫彲浠ュ鍔犲垽鏂�
             if (!waitGuideWinNames.Contains(config.WinName))
             {
                 waitGuideWinNames.Add(config.WinName);
diff --git a/Main/System/NewBieGuidance/NewBieMask.cs b/Main/System/NewBieGuidance/NewBieMask.cs
index 9458826..481f05c 100644
--- a/Main/System/NewBieGuidance/NewBieMask.cs
+++ b/Main/System/NewBieGuidance/NewBieMask.cs
@@ -13,6 +13,10 @@
     public void Display(int _guideStep, Transform _target)
     {
         var config = ScriptableObjectLoader.LoadSoNewBieGuideStep(_guideStep);
+        if (_target == null)
+        {
+            return;
+        }
         m_Mask.center = (Vector2)this.transform.InverseTransformPoint(_target.position) + config.clickPosition;
         m_Mask.cell = config.clickSize;
     }
diff --git a/Main/System/NewBieGuidance/NewBieWin.cs b/Main/System/NewBieGuidance/NewBieWin.cs
index f95d6ab..f94f6ea 100644
--- a/Main/System/NewBieGuidance/NewBieWin.cs
+++ b/Main/System/NewBieGuidance/NewBieWin.cs
@@ -58,6 +58,7 @@
     protected override void OnPreOpen()
     {
         m_ClickTarget = null;
+        tryGuideCount = 0;
         //鍏抽棴鍏朵粬鍙兘鍦ㄤ富鐣岄潰鏄剧ず鐨勭獥鍙g瓑
         UIManager.Instance.CloseWindow<ChatWin>();
         NewBieCenter.Instance.guideStepChangeEvent += OnStepChange;
@@ -105,13 +106,24 @@
             if (m_ClickTarget != null)
             {
                 m_lastTargetPosition = m_ClickTarget.position;
+                tryGuideCount = 0;
             }
             else
             {
-                #if UNITY_EDITOR
-                if (!string.IsNullOrEmpty(stepConfig.UIElementPath))
-                    Debug.LogError($"寮曞姝ラ{step}鎵句笉鍒扮洰鏍噞stepConfig.UIElementPath}, 鑻ヤ笉闇�瑕佽鍒犻櫎璺緞");
-                #endif
+                if (tryGuideCount > 3)
+                {
+
+#if UNITY_EDITOR
+                    if (!string.IsNullOrEmpty(stepConfig.UIElementPath))
+                        Debug.LogError($"寮曞姝ラ{step}鎵句笉鍒扮洰鏍噞stepConfig.UIElementPath}, 鑻ヤ笉闇�瑕佽鍒犻櫎璺緞");
+#endif
+                    ReportStepOver();
+                    tryGuideCount = 0;
+                    return;
+    
+                }
+                DelayDisplay().Forget();
+                return;
             }
         }
         catch (Exception ex)
@@ -122,7 +134,7 @@
 
         var type = stepConfig.guideType;
         if (type == GuideType.NewBie && stepConfig.clickCompleteNoMask)
-        { 
+        {
             m_NewBieMask.SetActive(false);
         }
         else
@@ -153,6 +165,15 @@
             m_GuideTalkRect.SetActive(false);
             DisplayGuide();
         }
+    }
+
+    int tryGuideCount = 0;
+    //鐣岄潰鍔犺浇鎱㈣繕鏈樉绀虹殑鎯呭喌 澶氭娴嬩袱娆� 濡傛灉杩樻壘涓嶅埌鍒欒鍛婃彁绀�
+    async UniTask DelayDisplay()
+    {
+        await UniTask.Delay((tryGuideCount + 1) * 100);
+        tryGuideCount++;
+        Display();
     }
 
 
@@ -278,6 +299,8 @@
                 if (m_ClickTarget == null)
                 {
                     Debug.LogError("寮曞 m_ClickTarget == null; step = " + NewBieCenter.Instance.guideStep);
+                    ReportStepOver();
+                    return;
                 }
                 var btn = m_ClickTarget.GetComponent<Button>();
                 ReportStepOver();

--
Gitblit v1.8.0