hch
2 天以前 accaedaa73fa53edd3284e675bd8f0b06f9a0f33
Main/System/Tip/ScrollTip.cs
@@ -2,114 +2,128 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
    public class ScrollTip
public class ScrollTip
{
    public static List<SystemHintData> m_Hints = new List<SystemHintData>();
    public static List<ScrollTipDetail> m_ActiveTips = new List<ScrollTipDetail>();
    private static GameObjectPoolManager.GameObjectPool pool = null;
    private static bool inited = false;
    public static float tipMoveTime = 0.2f;
    public static event Action OnTipReceiveEvent;
    public static void ShowTip(string tip, ArrayList infoList = null, int _order = 0)
    {
        public static List<SystemHintData> m_Hints = new List<SystemHintData>();
        public static List<ScrollTipDetail> m_ActiveTips = new List<ScrollTipDetail>();
        private static GameObjectPoolManager.GameObjectPool pool = null;
        private static bool inited = false;
        public static float tipMoveTime = 0.2f;
        public static event Action OnTipReceiveEvent;
        public static void ShowTip(string tip, ArrayList infoList = null, int _order = 0)
        int range = Math.Min(m_Hints.Count, 10);
        int findCnt = 0;
        for (int i = 1; i <= range; i++)
        {
            int range = Math.Min(m_Hints.Count, 10);
            int findCnt = 0;
            for (int i = 1; i <= range; i++)
            if (m_Hints[m_Hints.Count - i].message == tip)
            {
                if (m_Hints[m_Hints.Count - i].message == tip)
                findCnt++;
                if (findCnt == 3)
                {
                    findCnt++;
                    if (findCnt == 3)
                    {
                        //列表内重复提示最多3次
                        return;
                    }
                    //列表内重复提示最多3次
                    return;
                }
            }
            m_Hints.Add(new SystemHintData()
            {
                message = tip,
                extentionData = infoList == null ? infoList : new ArrayList(infoList),
                appendTime = DateTime.Now,
                order = _order
            });
            //m_Hints.Sort(SysNotifyMgr.Instance.Compare);
            if (OnTipReceiveEvent != null)
            {
                OnTipReceiveEvent();
            }
            if (!UIManager.Instance.IsOpened<ScrollTipWin>())
            {
                UIManager.Instance.OpenWindow<ScrollTipWin>();
            }
        }
        public static ScrollTipDetail Request()
        m_Hints.Add(new SystemHintData()
        {
            ScrollTipDetail tip = null;
            if (pool == null)
            {
                var _prefab = ResManager.Instance.LoadAsset<GameObject>("UIComp", "Tip");// UILoader.LoadPrefab("Tip");
                pool = GameObjectPoolManager.Instance.RequestPool(_prefab);
            }
            if (pool != null)
            {
                tip = pool.Request().AddMissingComponent<ScrollTipDetail>();
            }
            return tip;
        }
            message = tip,
            extentionData = infoList == null ? infoList : new ArrayList(infoList),
            appendTime = DateTime.Now,
            order = _order
        });
        public static void Release(ScrollTipDetail tip, bool next = true)
        //m_Hints.Sort(SysNotifyMgr.Instance.Compare);
        if (OnTipReceiveEvent != null)
        {
            if (m_ActiveTips.Contains(tip))
            {
                tip.presentState = ScrollTipState.None;
                m_ActiveTips.Remove(tip);
            }
            if (tip.gameObject != null && pool != null)
            {
                pool.Release(tip.gameObject);
            }
            if (m_ActiveTips.Count > 0 && next)
            {
                m_ActiveTips[0].Play(ScrollTipState.Hide);
            }
            OnTipReceiveEvent();
        }
        public static void ReleaseAll()
        {
            for (int i = 0; i < m_ActiveTips.Count; i++)
            {
                Release(m_ActiveTips[i]);
                i--;
            }
        }
        public static void OnTipComplete()
        {
            if (OnTipReceiveEvent != null) OnTipReceiveEvent();
        }
        public static void Close()
        //过滤不播放的情况
        if (!CanOpen())
        {
            m_Hints.Clear();
            return;
        }
        public enum ScrollTipState
        if (!UIManager.Instance.IsOpened<ScrollTipWin>())
        {
            None,
            Idle,
            Move,
            Hide
            UIManager.Instance.OpenWindow<ScrollTipWin>();
        }
    }
    static bool CanOpen()
    {
        // if (HappyXBModel.Instance.isXBCoolTime)
        //     return false;
        return true;
    }
    public static ScrollTipDetail Request()
    {
        ScrollTipDetail tip = null;
        if (pool == null)
        {
            var _prefab = UILoader.LoadPrefab("Tip");
            pool = GameObjectPoolManager.Instance.RequestPool(_prefab);
        }
        if (pool != null)
        {
            tip = pool.Request().AddMissingComponent<ScrollTipDetail>();
        }
        return tip;
    }
    public static void Release(ScrollTipDetail tip, bool next = true)
    {
        if (m_ActiveTips.Contains(tip))
        {
            tip.presentState = ScrollTipState.None;
            m_ActiveTips.Remove(tip);
        }
        if (tip.gameObject != null && pool != null)
        {
            pool.Release(tip.gameObject);
        }
        if (m_ActiveTips.Count > 0 && next)
        {
            m_ActiveTips[0].Play(ScrollTipState.Hide);
        }
    }
    public static void ReleaseAll()
    {
        for (int i = 0; i < m_ActiveTips.Count; i++)
        {
            Release(m_ActiveTips[i]);
            i--;
        }
    }
    public static void OnTipComplete()
    {
        if (OnTipReceiveEvent != null) OnTipReceiveEvent();
    }
    public static void Close()
    {
        m_Hints.Clear();
    }
    public enum ScrollTipState
    {
        None,
        Idle,
        Move,
        Hide
    }
}