private int SortBtn(MainTownButtonConfigData x, MainTownButtonConfigData y) { int XWh = ((int)x.ButtonArea) * 1000 + x.Button_Row * 100 + x.Button_ListSequence; int YWh = ((int)y.ButtonArea) * 1000 + y.Button_Row * 100 + y.Button_ListSequence; return(XWh - YWh); }
/// <summary> /// 初始化或点击展开 /// </summary> /// <param name="item"></param> public void AddSysFuntionButton(MainTownButtonConfigData item)//MainUI.UIType BtnType, MainBtnArea btnPos, int BtnNum)//添加按钮,分别为按钮类型,按钮所在屏幕位置,按钮所在位置的号码 { if (!MyBtnEneble) { return; } switch (item.ButtonArea) { case MainTownButtonArea.LeftUp: if (!SysButtonPanel_TopLeft.ContainsButton(item.ButtonFunc)) { SysButtonPanel_TopLeft.InsertBtn(item); if (m_addSystemFunc != UIType.Empty) { SysButtonPanel_TopLeft.ShowEnableEffect(ButtonEnableEffect, m_addSystemFunc); m_addSystemFunc = UIType.Empty; } } break; case MainTownButtonArea.RightUp: if (!SysButtonPanel_TopRight.ContainsButton(item.ButtonFunc)) { SysButtonPanel_TopRight.InsertBtn(item); if (m_addSystemFunc != UIType.Empty) { SysButtonPanel_TopRight.ShowEnableEffect(ButtonEnableEffect, m_addSystemFunc); m_addSystemFunc = UIType.Empty; } } break; case MainTownButtonArea.RightDown: if (!SysButtonPanel_BottomRight.ContainsButton(item.ButtonFunc)) { SysButtonPanel_BottomRight.InsertBtn(item); if (m_addSystemFunc != UIType.Empty) { SysButtonPanel_BottomRight.ShowEnableEffect(ButtonEnableEffect, m_addSystemFunc); m_addSystemFunc = UIType.Empty; } } break; default: break; } }
public void InsertBtn(MainTownButtonConfigData item)//MainUI.UIType sysBtnType, MainBtnArea btnPos, int btnNum)//插入按钮,按钮位置,按钮序号,按钮序号从0开始 { //print("原预添加位置:"+btnNum); // if (item._ButtonIndex > btnArray.Count) // { // item._ButtonIndex = btnArray.Count; // } //print("实际添加位置:" +btnNum); LocalSysButton localBtnController = CreatObjectToNGUI.InstantiateObj(item.ButtonPrefab, transform).GetComponent <LocalSysButton>(); localBtnController.gameObject.RegisterBtnMappingId(item.ButtonFunc, BtnMapId_Sub.Empty); //new switch (item.ButtonArea) { case MainTownButtonArea.LeftUp: for (int i = 0; i < 10; i++) { if (i == item.Button_Row - 1) { if (m_insertLeftUpIFirst[i]) { m_insertLeftUpPos_x[i] = CommonDefineManager.Instance.CommonDefine.TownstartPoint1.BaseOffset.x; m_insertLeftUpIFirst[i] = false; //m_insertLeftUpPos_y=CommonDefineManager.Instance.CommonDefine.TownstartPoint1.BaseOffset.y; } else { m_insertLeftUpPos_x[i] += (item.ButtonRadius + m_insertLeftUpRadio[i]) * CommonDefineManager.Instance.CommonDefine.TownstartPoint1.Direction.x; } m_insertLeftUpPos_y = item.Button_RowIndex * CommonDefineManager.Instance.CommonDefine.TownstartPoint1.Direction.y; m_insertLeftUpRadio[i] = item.ButtonRadius; localBtnController.SetBtnAtrribute(item.ButtonFunc, new Vector3(m_insertLeftUpPos_x[i], m_insertLeftUpPos_y, 0), this.Showing, item.DefaultEnable == 1, item.ButtonSound); } } break; case MainTownButtonArea.RightUp: for (int i = 0; i < 10; i++) { if (i == item.Button_Row - 1) { if (m_insertRightUpFirst[i]) { m_insertRightUpPos_x[i] = CommonDefineManager.Instance.CommonDefine.TownstartPoint2.BaseOffset.x; m_insertRightUpFirst[i] = false; // m_insertRightUpPos_y=CommonDefineManager.Instance.CommonDefine.TownstartPoint2.BaseOffset.y; } else { m_insertRightUpPos_x[i] += (item.ButtonRadius + m_insertRightUpRadio[i]) * CommonDefineManager.Instance.CommonDefine.TownstartPoint2.Direction.x; } m_insertRightUpPos_y = item.Button_RowIndex * CommonDefineManager.Instance.CommonDefine.TownstartPoint2.Direction.y; m_insertRightUpRadio[i] = item.ButtonRadius; localBtnController.SetBtnAtrribute(item.ButtonFunc, new Vector3(m_insertRightUpPos_x[i], m_insertRightUpPos_y, 0), this.Showing, item.DefaultEnable == 1, item.ButtonSound); } } break; case MainTownButtonArea.RightDown: for (int i = 0; i < 10; i++) { if (i == item.Button_Row - 1) { if (m_insertRightDownFirst[i]) { if (i == 0) { m_insertRightDownPos_x[i] = CommonDefineManager.Instance.CommonDefine.TownstartPoint3.BaseOffset.x; } else { m_insertRightDownPos_x[i] = 0; } m_insertRightDownFirst[i] = false; // m_insertRightDownPos_y=CommonDefineManager.Instance.CommonDefine.TownstartPoint2.BaseOffset.y; } else { m_insertRightDownPos_x[i] += (item.ButtonRadius + m_insertRightDownRadio[i]) * CommonDefineManager.Instance.CommonDefine.TownstartPoint3.Direction.x; } m_insertRightDownPos_y = item.Button_RowIndex * CommonDefineManager.Instance.CommonDefine.TownstartPoint3.Direction.y; m_insertRightDownRadio[i] = item.ButtonRadius; localBtnController.SetBtnAtrribute(item.ButtonFunc, new Vector3(m_insertRightDownPos_x[i], m_insertRightDownPos_y, 0), this.Showing, item.DefaultEnable == 1, item.ButtonSound); } } break; default: break; } //localBtnController.SetBtnAtrribute(item.ButtonFunc, new Vector3(item.ButtonPositionOffset.x, item.ButtonPositionOffset.y, 0), this.Showing,item.DefaultEnable==1); //引导注入 #region old // switch (item._ButtonArea) // { // case MainBtnArea.TopLeft: // // m_insertBottomPos += -(item._ButtonRadius * 2); // localBtnController.SetBtnAtrribute(item._ButtonFunc, new Vector3(item._ButtonIndex.x, item._ButtonIndex.y, 0), this.Showing); // break; // case MainBtnArea.TopRight: // m_insertRightPos += (item._ButtonRadius * 2); // localBtnController.SetBtnAtrribute(item._ButtonFunc, new Vector3(0, m_insertRightPos, 0), this.Showing); // break; // default: // break; // } #endregion ///ssss btnArray.Add(localBtnController); //ResetBtnPosition(); int guideID = 0; //TODO GuideBtnManager.Instance.RegGuideButton(localBtnController.gameObject, item._ButtonFunc, SubType.MainButton, out guideID); m_guideBtnID.Add(guideID); }
/// <summary> /// 处理开放主按钮消息,播放开启特效 /// </summary> /// <param name="obj"></param> void AddMainButton(object obj) { m_addSystemFunc = (UIType)obj; var buttonList = NewUIDataManager.Instance.TownMainButtonList; MainTownButtonConfigData enableItem = null; //找到要开放的功能按钮配置信息 for (int i = 0; i < buttonList.Count; i++) { if (buttonList[i].ButtonFunc == m_addSystemFunc) { enableItem = buttonList[i]; } } if (enableItem == null) { TraceUtil.Log("要开启主按钮,配置表中无对应!"); return; } //加入到已开放功能按钮配置信息列表 if (!m_buttonList.Exists(P => P.ButtonFunc == enableItem.ButtonFunc)) { m_buttonList.Add(enableItem); } else { TraceUtil.Log("此功能按钮已经开启!"); } //SysButtonPanel_Bottom.ResetSystemPanel(); //SysButtonPanel_Right.ResetSystemPanel(); m_buttonList.Sort(SortBtn); switch (enableItem.ButtonArea) { case MainTownButtonArea.LeftUp: SysButtonPanel_TopLeft.RestPanel(); break; case MainTownButtonArea.RightUp: SysButtonPanel_TopRight.RestPanel(); break; case MainTownButtonArea.RightDown: SysButtonPanel_BottomRight.RestPanel(); break; } if (m_buttonEnablePic != null) { Destroy(m_buttonEnablePic); } foreach (var item in m_buttonList) { //AddSysFuntionButton(item); if (item.ButtonFunc == m_addSystemFunc) { TraceUtil.Log("开启新功能:" + m_addSystemFunc + " " + Time.realtimeSinceStartup); m_buttonEnablePic = CreatObjectToNGUI.Instantiate(ButtonEnablePic) as GameObject; m_buttonEnablePic.transform.parent = this.transform.parent; m_buttonEnablePic.transform.localScale = Vector3.one; m_buttonEnablePic.GetComponent <EnableFunctionPanel>().InitPanel(m_addSystemFunc, SysButton.transform, this); } } StartCoroutine(Creat()); }