private void AddNewInfoInCurrentList(SoftGuideInfo info) { SoftGuideInfo curInfo; bool contain = false; for (int i = 0, count = _currentGuideList.Count; i < count; i++) { curInfo = _currentGuideList[i]; if (curInfo.id == info.id) { contain = true; break; } } if (!contain) { if (info.data.id == (int)Logic.Enums.FunctionOpenType.MainView_Activity) { LuaInterface.ToLuaPb.SetFromLua((int)Logic.Protocol.Model.MSG.ActivityListReq); } if (info.data.id == (int)FunctionOpenType.MainView_Chat) { LuaInterface.ToLuaPb.SetFromLua((int)Logic.Protocol.Model.MSG.ChatInfoReq); } _currentGuideList.Add(info); } }
public void OnClickSoftGuideView(SoftGuideView view) { // Debug.Log(view.id + "," + view.status); SoftGuideInfo info = null; for (int i = 0, count = _currentGuideList.Count; i < count; i++) { if (_currentGuideList[i].id == view.id) { info = _currentGuideList[i]; break; } } if (info != null) { if (view.status == SoftGuideView.StatusType.FirstView) //一级界面 { if (!info.hasSecondView) { info.isTipOver = true; bool hasSame = CheckFirstSame(info); if (!hasSame) { RemoveSoftEffectTip(view.transform); } } } else if (view.status == SoftGuideView.StatusType.SecondView) //二级界面 { info.isTipOver = true; bool hasSame = CheckSecondSame(info); if (!hasSame) { RemoveSoftEffectTip(view.transform); } hasSame = CheckFirstSame(info); if (!hasSame) { GameObject firstView = UIMgr.instance.Get(info.firstViewPath); if (firstView != null) { RemoveSoftEffectTip(firstView.transform.Find(info.firstButtonPath)); } } } } }
/// <summary> /// 检查二级界面相同 /// </summary> private bool CheckSecondSame(SoftGuideInfo info) { int count = _currentGuideList.Count; SoftGuideInfo curInfo; for (int i = 0; i < count; i++) { curInfo = _currentGuideList[i]; if (!curInfo.isTipOver) { if (curInfo.hasSecondView && info.SecondViewPath.Equals(curInfo.SecondViewPath) && info.SecondButtonPath.Equals(curInfo.SecondButtonPath)) { return(true); } } } return(false); }
public void Init() { if (_isInit) { return; } _isInit = true; _funcResisterDic.Clear(); _guideInfoDictionary.Clear(); _currentGuideList.Clear(); _functionOpenDic.Clear(); Dictionary <int, FunctionData> dataDic = FunctionData.FunctionDataDictionary; SoftGuideInfo info; foreach (var value in dataDic) { if (!FunctionOpenProxy.instance.IsFunctionOpen((FunctionOpenType)value.Key)) { info = new SoftGuideInfo(value.Key, false); if (info.hasFirstView) { RegisterObserver(info.firstViewPath); _guideInfoDictionary.Add(value.Key, info); } if (info.hasSecondView) { RegisterObserver(info.SecondViewPath); } if (!string.IsNullOrEmpty(info.data.show_new_des)) { _functionOpenDic.Add(value.Key, false); } } } Observers.Facade.Instance.RegisterObserver("UpdateSoftGuideByLua", UpdateSoftGuideByLua); }