/// <summary> /// 添加地图名称展示 /// </summary> /// <param name="mapName"></param> public void AddMapDisplayEffect(string mapName) { if (!CanShowDisPlayEffect()) { return; } EffectDisplayData displayData = new EffectDisplayData() { DisPlayType = EffectDisplayData.EffectDisplayType.Disp_MapName, Data = mapName, }; Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.UIEVENTPlayDISPLAYEFFECT, displayData); }
/// <summary> /// 执行tips /// </summary> private bool DoShowNextTips() { if (!CanShowDisPlayEffect()) { //不清空数据 //ClearTips(); return(false); } float curTime = Time.time; EffectDisplayData displayData = null; int priorityInt = 0; for (TipsPriority i = TipsPriority.High, min = TipsPriority.Low; i >= min; i--) { priorityInt = (int)i; if (!m_dicTipsCache.ContainsKey(priorityInt)) { continue; } while (null != m_dicTipsCache[priorityInt] && m_dicTipsCache[priorityInt].Count > 0) { if (curTime - m_dicTipsCache[priorityInt][0].CacheTime < TipsCacheTime) { displayData = new EffectDisplayData() { DisPlayType = EffectDisplayData.EffectDisplayType.Disp_Tips, Data = m_dicTipsCache[priorityInt][0].Txt, }; m_dicTipsCache[priorityInt].RemoveAt(0); Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.UIEVENTPlayDISPLAYEFFECT, displayData); return(true); } else { m_dicTipsCache[priorityInt].RemoveAt(0); } } } return(false); }
/// <summary> /// 添加粒子效果展示 /// </summary> /// <param name="resId"></param> public void AddParticalDisplayEffect(uint resId) { if (!CanShowDisPlayEffect()) { return; } EffectDisplayData displayData = new EffectDisplayData() { DisPlayType = EffectDisplayData.EffectDisplayType.Disp_Partical, Data = resId, CacheStartTime = Time.time, }; if (m_cacheDisplayDatas.Count >= MAX_TIPS_CACHE_NUM) { //移除前面的,腾出空间放下一个 m_cacheDisplayDatas.Dequeue(); Engine.Utility.Log.Warning("EffectDisplayManager->AddParticalDisplayEffect warning,over max num limit"); } m_cacheDisplayDatas.Enqueue(displayData); DoNextParticalDisplayEffect(); }
/// <summary> /// 执行下一个粒子效果展示 /// </summary> private void DoNextParticalDisplayEffect() { if (!CanShowDisPlayEffect()) { m_cacheDisplayDatas.Clear(); return; } if (m_isDoingDisplayEffect) { return; } if (m_cacheDisplayDatas.Count == 0) { return; } EffectDisplayData data = null; bool success = false; while (m_cacheDisplayDatas.Count > 0) { data = m_cacheDisplayDatas.Dequeue(); if (Time.time - data.CacheStartTime <= CenterDisplayEffectCacheLT) { //是否超过缓存最大时间 success = true; break; } } if (success) { m_isDoingDisplayEffect = true; Engine.Utility.EventEngine.Instance().DispatchEvent((int)Client.GameEventID.UIEVENTPlayDISPLAYEFFECT, data); } }