void onClick_Leftbtn_Btn(GameObject caster) { bool show = IsShowRightBtn(); bool guideForceShow = false; if (null != caster) { GuideTriggerData gtData = caster.GetComponent <GuideTriggerData>(); if (null != gtData && gtData.IsGuideTrigger) { gtData.IsGuideTrigger = false; guideForceShow = true; } } UIDefine.GameObjMoveStatus stats = UIDefine.GameObjMoveStatus.None; if (show) { if (!guideForceShow) { stats = UIDefine.GameObjMoveStatus.MoveToInvisible; } } else { stats = UIDefine.GameObjMoveStatus.MoveToVisible; } //发送UI,功能按钮状态变化事件 SendGameObjMoveStatusEvent(stats, m_lst_FuncBtnsRight); }
/// <summary> /// 左上角 按钮展开逻辑 /// </summary> /// <param name="caster"></param> void onClick_BtnShowFunc_Btn(GameObject caster) { bool show = m_trans_btn_Left_Root.gameObject.activeSelf; bool guideForceShow = false; if (null != caster) { GuideTriggerData gtData = caster.GetComponent <GuideTriggerData>(); if (null != gtData && gtData.IsGuideTrigger) { gtData.IsGuideTrigger = false; guideForceShow = true; } } if (show) { if (!guideForceShow) { ResetLeftBtnsPos(); } } else { ShowLeftBtn(); } }
/// <summary> /// 引导UI事件回调 /// </summary> /// <param name="eventType">事件类型</param> /// <param name="data"></param> /// <param name="param"></param> private void GuideTriggerDlg(UIEventType eventType, object data, object param) { switch (eventType) { case UIEventType.Click: if (null != m_helpData && null != m_helpData.LocalData) { if (data is GuideTrigger) { GuideTrigger gTrigger = data as GuideTrigger; if (null != gTrigger && null != gTrigger.TriggerIds) { if (null != m_helpData.LocalData.GuideTargetObj) { GuideTriggerData gtData = m_helpData.LocalData.GuideTargetObj.GetComponent <GuideTriggerData>(); if (null == gtData) { gtData = m_helpData.LocalData.GuideTargetObj.AddComponent <GuideTriggerData>(); gtData.IsGuideTrigger = true; } m_helpData.LocalData.GuideTargetObj.SendMessage("OnClick", SendMessageOptions.DontRequireReceiver); if (null != gtData) { GameObject.Destroy(gtData); } } List <uint> triggerIds = new List <uint>(); triggerIds.AddRange(gTrigger.TriggerIds); for (int i = 0; i < triggerIds.Count; i++) { if (m_helpData.LocalData.ID == triggerIds[i]) { CompleteGuide(); } } HideSelf(); } } } break; } }
/// <summary> /// 引导ID /// </summary> /// <param name="guideId"></param> private void ShowGuide(uint guideId) { GuideDefine.LocalGuideData localData = null; if (DataManager.Manager <GuideManager>().TryGetGuideLocalData(guideId, out localData)) { if (null == localData.GuideTargetObj) { return; } PanelType ptype = PanelType.SmartPopUp; UIPanelManager.LocalPanelInfo localInfo = null; if (DataManager.Manager <UIPanelManager>().TryGetLocalPanelInfo(localData.GuideTargetDependPanel, out localInfo)) { ptype = localInfo.PType; } if (IsShowUnconstrainGuide(guideId)) { //如果不可见重新获取当前面板深度 UIUnconstraintGrid showGrid = m_dic_showGuide[guideId]; if (!showGrid.Visible) { showGrid.SetVisible(true); GuideTrigger gTrigger = localData.GuideTargetObj.GetComponent <GuideTrigger>(); if (null != gTrigger && !gTrigger.enabled) { gTrigger.enabled = true; } int maxDepth = DataManager.Manager <UIPanelManager>().GetTargetRootMaxDepth(ptype); showGrid.SetDepth(maxDepth + 1); if (localData.RefreshPosInTime) { showGrid.RefreshPos(); } showGrid.CheckTriggerData(guideId, GuideTriggerDlg); } } else { int maxDepth = DataManager.Manager <UIPanelManager>().GetTargetRootMaxDepth(ptype); UIUnconstraintGrid grid = GetUnconstrainGrid(); if (null != grid) { grid.CacheTransform.gameObject.name = guideId.ToString(); m_dic_showGuide.Add(guideId, grid); } grid.SetData(maxDepth + 1, guideId, GuideTriggerDlg); if (localData.TableData.voiceID != 0) { DataManager.Manager <UIManager>().PlayUIAudioEffect(localData.TableData.voiceID); } } GuideTriggerData gtData = localData.GuideTargetObj.GetComponent <GuideTriggerData>(); if (null == gtData) { gtData = localData.GuideTargetObj.AddComponent <GuideTriggerData>(); } if (null != gtData && !gtData.IsGuideTrigger) { gtData.IsGuideTrigger = true; } } }