yyl
7 天以前 b68f7b60504a5030b89375170f797a788a5b6ec8
Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
3个文件已修改
43 ■■■■ 已修改文件
Main/System/NewBieGuidance/NewBieCenter.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/NewBieGuidance/NewBieMask.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/NewBieGuidance/NewBieWin.cs 33 ●●●● 补丁 | 查看 | 原始文档 | 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 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();