public GuideBtnParam(int btnId, GameObject guideBtn, bool isCollider, UIType uiType, BtnMapId_Sub subUIType) { this.IsCollider = isCollider; BtnCollider = guideBtn.GetComponent <BoxCollider>(); this.UIType = uiType; this.SubUIType = subUIType; this.GuideBtn = guideBtn; BtnBehaviour = GuideBtn.GetComponent <GuideBtnBehaviour>(); m_cacheColliderEnable = BtnCollider == null?false: BtnCollider.enabled; }
/// <summary> /// 给背包右边的按钮加引导 /// </summary> /// <param name="packBtnType"></param> /// <param name="uiType"></param> /// <param name="btnMapId_Sub"></param> public void RegisterGuideBtn(PackBtnType packBtnType, UIType uiType, BtnMapId_Sub btnMapId_Sub) { #region ` 引导注入代码 var btnBehaviour = GetBtn(packBtnType); if (btnBehaviour != null) { btnBehaviour.gameObject.RegisterBtnMappingId(uiType, btnMapId_Sub); } #endregion }
/// <summary> /// 获得所有BtnId的对应,用于给策划填表 /// </summary> /// <returns></returns> public string GetBtnId() { StringBuilder btnIdStringBuilder = new StringBuilder(); var uiTypeNames = Enum.GetNames(typeof(UIType)); byte[] uiTypeValues = (byte[])Enum.GetValues(typeof(UIType)); var btnMapId_SubNames = Enum.GetNames(typeof(BtnMapId_Sub)); int[] btnMapId_SubValues = (int[])Enum.GetValues(typeof(BtnMapId_Sub)); int btnMapIdLength = btnMapId_SubNames.Length; int uiTypeLength = uiTypeNames.Length; string uiTypeName = string.Empty, subTypeName = string.Empty, uiTypeDesc = string.Empty, subTypeDesc = string.Empty; int btnId = 0, subTypeEnumValue = 0; for (int j = 0; j < uiTypeLength; j++) { uiTypeName = uiTypeNames[j]; UIType uiTypeVal = (UIType)uiTypeValues[j]; uiTypeDesc = uiTypeVal.ToDescription <UIType>(); btnId = CalcBtnId((UIType)uiTypeValues[j], BtnMapId_Sub.Empty, true); subTypeDesc = BtnMapId_Sub.Empty.ToDescription <BtnMapId_Sub>(); btnIdStringBuilder.AppendFormat("{0},{1},{2},{3},{4},{5} \n", uiTypeDesc, uiTypeName, subTypeDesc, "", btnId, subTypeEnumValue); } for (int i = 0; i < btnMapIdLength; i++) { subTypeName = btnMapId_SubNames[i]; string[] nameArray = subTypeName.Split('_'); for (int j = 0; j < uiTypeLength; j++) { if (uiTypeNames[j] == nameArray[0]) { uiTypeName = uiTypeNames[j]; UIType uiTypeVal = (UIType)uiTypeValues[j]; uiTypeDesc = uiTypeVal.ToDescription <UIType>(); BtnMapId_Sub btnMapId_Sub = (BtnMapId_Sub)btnMapId_SubValues[i]; subTypeEnumValue = btnMapId_SubValues[i]; subTypeDesc = btnMapId_Sub.ToDescription <BtnMapId_Sub>(); btnId = CalcBtnId(uiTypeVal, btnMapId_Sub, true); break; } } btnIdStringBuilder.AppendFormat("{0},{1},{2},{3},{4},{5} \n", uiTypeDesc, uiTypeName, subTypeDesc, subTypeName, btnId, subTypeEnumValue); /*if (subTypeEnumValue == 904) // 技能装配项 另外三个位置 * { * btnIdStringBuilder.AppendFormat("{0},{1},{2},{3},{4},{5} \n", uiTypeDesc, uiTypeName, subTypeDesc, subTypeName, btnId + 1, subTypeEnumValue); * btnIdStringBuilder.AppendFormat("{0},{1},{2},{3},{4},{5} \n", uiTypeDesc, uiTypeName, subTypeDesc, subTypeName, btnId + 2, subTypeEnumValue); * btnIdStringBuilder.AppendFormat("{0},{1},{2},{3},{4},{5} \n", uiTypeDesc, uiTypeName, subTypeDesc, subTypeName, btnId + 3, subTypeEnumValue); * }*/ } return(btnIdStringBuilder.ToString()); }
public virtual IEnumerator RefreshList(JewelState tab, BtnMapId_Sub btnMapId_Sub) { ItemTable.transform.ClearChild(); ItemList.Clear(); InitItemFileinfoList(tab); int columnAmount = Mathf.CeilToInt(ItemFileinfoList.Count / 3.0f); int j = 0; if (ItemFileinfoList.Count > 0) { m_shouldMove = ItemFileinfoList.Count > 9; for (int i = 0; i < ItemFileinfoList.Count(); i++) { if (i % 3 == 0) //3项一排 { j++; } Item_go = NGUITools.AddChild(ItemTable.gameObject, JewelBeset_ContainerItemProfab); Item_go.name = JewelBeset_ContainerItemProfab.name + i; JewelBset_ContainerItem Sc_item = Item_go.GetComponent <JewelBset_ContainerItem>(); Sc_item.DragAmount = j / columnAmount; Sc_item.InitItemData(ItemFileinfoList[i]); Sc_item.OnItemClick = ItemSelectedEventHandle; ItemList.Add(Sc_item); } if (ItemList.Count > 0) { ItemList[0].OnBeSelected(); } yield return(null); ItemTable.Reposition(); yield return(null); //引导 if (ItemList != null) { ItemList.ApplyAllItem(P => { if (P != null) { //P.gameObject.RegisterBtnMappingId(P.ItemFielInfo.LocalItemData._goodID, MainUI.UIType.Gem, BtnMapId_Sub.Gem_JewelContainerListPanel_Item, NoticeToDragSlerp, P.DragAmount); P.gameObject.RegisterBtnMappingId(MainUI.UIType.Gem, BtnMapId_Sub.Gem_JewelBesetPanel_Weapon + P.ItemFielInfo.LocalItemData._GoodsSubClass - 1, NoticeToDragSlerp, P.DragAmount); } }); } if (m_noticeToDragAmount != 0) { StartCoroutine(DragAmountSlerp(m_noticeToDragAmount)); m_noticeToDragAmount = 0; } } }
public void RegisterBtnMappingId(int mappingId, UIType mainUiType, BtnMapId_Sub subBtnIdType , Action <float> noticeToDragSlerp, float itemAmount) { TaskBtnManager.Instance.DelGuideButton(BtnId); MainUiType = mainUiType; SubBtnIdType = subBtnIdType; MappingId = mappingId; BtnId = TaskBtnManager.Instance.RegGuideButton(gameObject, mainUiType, subBtnIdType); m_noticeToDragSlerp = noticeToDragSlerp; m_itemAmount = itemAmount; SetBtnColliderState(); }
//public static void RegisterBtnMappingId(this GameObject btnObj, UIType mainType, BtnMapId_Sub subType) //{ // RegisterBtnMappingId(btnObj,mainType,subType,true); //} public static void RegisterBtnMappingId(this GameObject btnObj, UIType mainType, BtnMapId_Sub subType) { if (btnObj != null) { var guideBtnBehaviour = btnObj.GetComponent <GuideBtnBehaviour>(); if (guideBtnBehaviour == null) { guideBtnBehaviour = btnObj.AddComponent <GuideBtnBehaviour>(); } guideBtnBehaviour.RegisterBtnMappingId(mainType, subType); } }
private int CalcBtnId(UIType btnMapId_Main, BtnMapId_Sub btnMapId_Sub, bool autoSequence) { int btnID = (byte)btnMapId_Main * 1000000 + (int)btnMapId_Sub * 100; if (autoSequence) { while (m_guideBtnParam.ContainsKey(btnID)) { btnID++; } } return(btnID); }
//public static void RegisterBtnMappingId(this GameObject btnObj, int mappingId, UIType mainUiType // , BtnMapId_Sub subBtnIdType, Func<UIDraggablePanel, float, IEnumerator> dragAmountSlerpAct, UIDraggablePanel panel, float itemAmount) //{ // RegisterBtnMappingId(btnObj, mappingId, mainUiType, subBtnIdType, dragAmountSlerpAct, panel, itemAmount, true); //} public static void RegisterBtnMappingId(this GameObject btnObj, int mappingId, UIType mainUiType , BtnMapId_Sub subBtnIdType, Action <float> noticeToDragSlerp, float itemAmount) { if (btnObj != null) { var guideBtnBehaviour = btnObj.GetComponent <GuideBtnBehaviour>(); if (guideBtnBehaviour == null) { guideBtnBehaviour = btnObj.AddComponent <GuideBtnBehaviour>(); } guideBtnBehaviour.RegisterBtnMappingId(mappingId, mainUiType, subBtnIdType , noticeToDragSlerp, itemAmount); } }
public int RegGuideButton(GameObject btnGO, UIType uiType, BtnMapId_Sub subUIType, Action <bool> customerActHandler) { int btnID = CalcBtnId(uiType, subUIType); if (btnID != 0) { if (!m_guideBtnParam.ContainsKey(btnID)) { m_guideBtnParam.Add(btnID, new GuideBtnParam(btnID, btnGO, btnGO.collider.enabled, uiType, subUIType)); if (!this.m_isEndGuide) { SetGuideBtnStatus(m_guideBtnParam[btnID], false, false); } } } return(btnID); }
/// <summary> /// 按钮注册,为按钮添加GuideButtonEvent组件 /// </summary> /// <param name="btnGO"></param> /// <param name="uiType"></param> /// <param name="subUIType"></param> /// <returns></returns> public int RegGuideButton(GameObject btnGO, UIType uiType, BtnMapId_Sub subUIType) { return(RegGuideButton(btnGO, uiType, subUIType, null)); }
private int CalcBtnId(UIType btnMapId_Main, BtnMapId_Sub btnMapId_Sub) { int btnID = CalcBtnId(btnMapId_Main, btnMapId_Sub, true); return(btnID); }
public void RegisterBtnMappingId(int mappingId, UIType mainUiType, BtnMapId_Sub subBtnIdType) { RegisterBtnMappingId(mappingId, mainUiType, subBtnIdType, null, 0); }
public void Init(int?selectedEctype) { m_selectedDefenceItem = null; m_posAnim.Reset(); m_posAnim.Play(true); EnableItemPoints.ApplyAllItem(P => P.transform.ClearChildImmediate()); DisableItemPoints.ApplyAllItem(P => P.transform.ClearChildImmediate()); var heroPlayerDataModel = PlayerManager.Instance.FindHeroDataModel(); //副本类型为8 指防守副本 var defenceEctypes = EctypeConfigManager.Instance.EctypeContainerConfigFile.ectypeContainerDataList.Where(P => P.lEctypeType == 8); var playerLev = heroPlayerDataModel.GetUnitValue().sMsgPropCreateEntity_SC_UnitVisibleValue.UNIT_FIELD_LEVEL; //获得能挑战的防守副本 var sortedList = defenceEctypes.ToList(); sortedList.Sort((x, y) => { if (x.lMinActorLevel == y.lMinActorLevel) { return(0); } else if (x.lMinActorLevel < y.lMinActorLevel) { return(1); } else { return(-1); } //return x.lMinActorLevel<y.lMinActorLevel?1:-1; }); // for(int i=0;i<sortedList.Count;i++) // { // Debug.Log(sortedList[i].lMinActorLevel); // } EctypeContainerData[] canChallengeEctypes = new EctypeContainerData[3]; //EctypeConfigManager.Instance.EctypeSelectConfigList.Values.ApplyAllItem(P=>P.DefenceChallengeRemainNum=2); canChallengeEctypes[0] = sortedList.FirstOrDefault(P => P.lMinActorLevel <= playerLev && P.lEctypePos[2] == "1"); canChallengeEctypes[1] = sortedList.FirstOrDefault(P => P.lMinActorLevel <= playerLev && P.lEctypePos[2] == "2"); canChallengeEctypes[2] = sortedList.FirstOrDefault(P => P.lMinActorLevel <= playerLev && P.lEctypePos[2] == "3"); for (int i = 0; i < 3; i++) { if (canChallengeEctypes[i] == null) { continue; } var enableItem = NGUITools.AddChild(EnableItemPoints[i], DefenceEctypeEnableItemPrefab); var itemBehaviour = enableItem.GetComponent <DefenceEctypeEnableItemBehaviour>(); itemBehaviour.Init(canChallengeEctypes[i]); #region 引导代码 BtnMapId_Sub defence_Stage = BtnMapId_Sub.Defence_Stage1; int remainNum = 0; switch (i) { case 0: defence_Stage = BtnMapId_Sub.Defence_Stage1; remainNum = heroPlayerDataModel.PlayerValues.PLAYER_FIELD_EXPDEFIEND_VALUE; break; case 1: defence_Stage = BtnMapId_Sub.Defence_Stage2; remainNum = heroPlayerDataModel.PlayerValues.PLAYER_FIELD_COINDEFINED_VALUE; break; case 2: defence_Stage = BtnMapId_Sub.Defence_Stage3; remainNum = heroPlayerDataModel.PlayerValues.PLAYER_FIELD_GOLDDEFINED_VALUE; break; } itemBehaviour.CallBackBtn.gameObject.RegisterBtnMappingId(UIType.Defence, defence_Stage); #endregion //var selectEct=EctypeConfigManager.Instance.EctypeSelectConfigList.Values.SingleOrDefault(P=>P._vectContainer.Contains(canChallengeEctypes[i].lEctypeContainerID)); if (m_selectedDefenceItem == null && remainNum > 0) { itemBehaviour.SetFocus(true); m_selectedDefenceItem = itemBehaviour; } else { itemBehaviour.SetFocus(false); } m_enableItems[i] = itemBehaviour; //监听点击事件处理 itemBehaviour.CallBackAct = DefenceItemClick; } if (selectedEctype != null) { for (int m = 0; m < m_enableItems.Length; m++) { if (m_enableItems[m] != null && m_enableItems[m].EctypeContainerData.lEctypeContainerID == selectedEctype.Value) { if (m_selectedDefenceItem != null) { m_selectedDefenceItem.SetFocus(false); } m_selectedDefenceItem = m_enableItems[m]; m_selectedDefenceItem.SetFocus(true); break; } } } //没有一个副本可以挑战,按钮不可用 if (m_selectedDefenceItem == null) { ChallengeBtn.Enable = false; //置灰 m_challengeBtnSpriteSwitch.ChangeSprite(3); } else { ChallengeBtn.Enable = true; m_challengeBtnSpriteSwitch.ChangeSprite(1); } //下一级挑战副本 EctypeContainerData[] CntnChallengeEctypes = new EctypeContainerData[3]; CntnChallengeEctypes[0] = sortedList.LastOrDefault(P => P.lMinActorLevel > playerLev && P.lEctypePos[2] == "1"); CntnChallengeEctypes[1] = sortedList.LastOrDefault(P => P.lMinActorLevel > playerLev && P.lEctypePos[2] == "2"); CntnChallengeEctypes[2] = sortedList.LastOrDefault(P => P.lMinActorLevel > playerLev && P.lEctypePos[2] == "3"); for (int i = 0; i < 3; i++) { if (CntnChallengeEctypes[i] == null) { continue; } var enableItem = NGUITools.AddChild(DisableItemPoints[i], DefenceEctypeDisableItemPrefab); var itemBehaviour = enableItem.GetComponent <defenceEctypedisableItemBehaviour>(); itemBehaviour.Init(CntnChallengeEctypes[i]); } }
IEnumerator CreatListItem() { // grid.transform.ClearChild(); // ContainerList.Clear(); Init(); ContainerList.ApplyAllItem(c => c.gameObject.SetActive(false)); for (int i = 0; i < ItemDatas.Count; i++) { if (ItemDatas[i].LocalItemData._GoodsSubClass == 2) { continue; } if (ItemPrefab == null) { Debug.LogError("ItemPrefab=null"); // return ; } GameObject go; if (ContainerList.Count > i) { go = ContainerList[i].gameObject; go.SetActive(true); ContainerList[i].Init(ItemDatas[i]); } else { go = UI.CreatObjectToNGUI.InstantiateObj(ItemPrefab, grid.transform) as GameObject; go.name = ItemPrefab.name + i; ContainerItem scContainerItem = go.GetComponent <ContainerItem>(); scContainerItem.SetSelcetCallBack(OnSelect); ContainerList.Add(scContainerItem); scContainerItem.Init(ItemDatas[i]); } bool isBtnMapMark = true; if (isBtnMapMark) { int index = i; if (i == 0) { index = -1; } float dragAmount = (index + 1) / (float)ItemDatas.Count; BtnMapId_Sub subType = BtnMapId_Sub.EquipmentUpgrade_Stren_Weapon; bool isSpecial = false; switch (EquipmentUpgradeDataManger.Instance.CurrentType) { case UpgradeType.Strength: subType = BtnMapId_Sub.EquipmentUpgrade_Stren_Weapon; break; case UpgradeType.StarUp: subType = BtnMapId_Sub.EquipmentUpgrade_Star_Weapon; break; case UpgradeType.Upgrade: { isSpecial = true; subType = BtnMapId_Sub.EquipmentUpgrade_Upgrade_Item; } break; } if (isSpecial) { go.RegisterBtnMappingId(ItemDatas[i].LocalItemData._goodID, UIType.EquipmentUpgrade, subType, NoticeToDragSlerp, dragAmount); } else { subType = subType + ItemDatas[i].LocalItemData._GoodsSubClass - 1; go.RegisterBtnMappingId(UIType.EquipmentUpgrade, subType, NoticeToDragSlerp, dragAmount); } } } yield return(null); grid.sorted = true; grid.Reposition(); Panel.ResetPosition(); if (m_noticeToDragAmount != 0) { Panel.transform.localPosition = new Vector3(Panel.transform.localPosition.x, startMarkDragpanelPosY, Panel.transform.localPosition.z); StartCoroutine(DragAmountSlerp(m_noticeToDragAmount)); m_noticeToDragAmount = 0; } }