| Main/System/NewBieGuidance/NewBieCenter.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/NewBieGuidance/NewBieMask.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/NewBieGuidance/NewBieWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | 
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); 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; } Main/System/NewBieGuidance/NewBieWin.cs
@@ -58,6 +58,7 @@ protected override void OnPreOpen() { m_ClickTarget = null; tryGuideCount = 0; //关闭其他可能在主界面显示的窗口等 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 (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) @@ -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();