//0 以左对齐,1 中心对齐 public void Sort(int sortType) { mStartPos = 0; mGroupsLength = 0; for (int i = 0; i < mGroups.Count; i++) { UiCardGroup cardGroup = mGroups[i]; mStartPos = mStartPos + cardGroup.Width / 2; cardGroup.transform.localPosition = new Vector3(mStartPos, 0); mStartPos = mStartPos + cardGroup.Width / 2; mStartPos += Interval; mGroupsLength += cardGroup.Width; } mGroupsLength += (mGroups.Count - 1) * Interval; float addDis = 0; if (sortType == 0) { addDis = -Size.x / 2; } else if (sortType == 1) { addDis = -mGroupsLength / 2; } for (int i = 0; i < mGroups.Count; i++) { UiCardGroup cardGroup = mGroups[i]; cardGroup.transform.localPosition += new Vector3(addDis, 0); } }
public UiCardGroup SetCard(int value) { UiCardGroup uiGroupCard = GameCenter.Assets.GetUIMahjongGroupSmall(new int[] { value }); CardGroup.AddUiCdGroup(uiGroupCard); return(uiGroupCard); }
public static UiCardGroup Create(GameObject[] objList, Vector2 MjSize, Sprite bg, EnGroupType cpgType = EnGroupType.None) { GameObject obj = new GameObject(); UiCardGroup ret = obj.AddComponent <UiCardGroup>(); ret._mjSize = MjSize; ret.AddObj(objList); //根据暗杠的形式摆牌 //if (cpgType == EnGroupType.AnGang) //{ // ret.SortAnGangGroup(); // return ret; //} ret.Sort(); if (bg != null) { Image imgBg = obj.AddComponent <Image>(); imgBg.sprite = bg; imgBg.type = Image.Type.Sliced; //设置底图大小 要比大 RectTransform rtf = obj.GetComponent <RectTransform>(); rtf.sizeDelta = new Vector2(ret.mObjList.Count * ret._mjSize.x + 20, ret._mjSize.y + 20); obj.AddComponent <Button>(); } return(ret); }
public UiCardGroup SetCards(IList <int> array) { if (null == array || array.Count == 0) { return(null); } UiCardGroup uiGroupCard = GameCenter.Assets.GetUIMahjongGroupSmall(array); CardGroup.AddUiCdGroup(uiGroupCard); return(uiGroupCard); }
public void SetCpgCard(List <CpgData> cpgList) { if (null == cpgList || cpgList.Count == 0) { return; } for (int i = 0; i < cpgList.Count; i++) { UiCardGroup uiGroup = GameCenter.Assets.GetUIMahjongGroup(cpgList[i].AllCards(), UIMahjongType.Small, cpgList[i].Type); CardGroup.AddUiCdGroup(uiGroup); } }
public void Open(ChooseCgArgs args) { base.Open(); CgGroup.Clear(); CancelBtn.onClick.RemoveAllListeners(); CancelBtn.onClick.AddListener(Close); List <int[]> cgList = args.FindList; if (cgList == null || cgList.Count == 0) { return; } for (int i = 0; i < cgList.Count; i++) { var valueList = new List <int>(cgList[i]); if (valueList.Count > 4) { continue; } if (valueList.Count < 4 && args.OutPutCard > 0) { valueList.Add(args.OutPutCard); } valueList.Sort((a, b) => { if (a > b) { return(1); } if ((a < b)) { return(-1); } return(0); }); UiCardGroup group = GameCenter.Assets.GetUIMahjongGroupBig(valueList.ToArray(), isHaveBg: true); CgGroup.AddUiCdGroup(group); int index = i; group.SetClickCallFunc(() => { args.ConfirmAction(index); base.Close(); }); } CgGroup.Sort(1); }
public void SetCpgCard(List <CpgModel> cpgList) { if (null == cpgList || cpgList.Count == 0) { return; } for (int i = 0; i < cpgList.Count; i++) { EnGroupType cpgType = EnGroupType.None; if (cpgList[i].Type == CpgProtocol.AnGang) { cpgType = EnGroupType.AnGang; } UiCardGroup uiGroup = GameCenter.Assets.GetUIMahjongGroup(cpgList[i].Cards, UIMahjongType.Small, cpgType); CardGroup.AddUiCdGroup(uiGroup); } }
public void AddUiCdGroup(UiCardGroup cardGroup) { cardGroup.transform.SetParent(transform); cardGroup.transform.localScale = Vector3.one; mGroups.Add(cardGroup); }
public UiCardGroup GetUIMahjongGroup(IList <int> cards, UIMahjongType uiType, EnGroupType cpgType = EnGroupType.None, bool isHaveBg = false) { Vector2 mjSize = Vector2.zero; GameObject[] list = new GameObject[cards.Count]; UiCardGroup cardGroup; switch (uiType) { case UIMahjongType.Big: mjSize = mSizeBig; break; case UIMahjongType.Small: mjSize = mSizeSmall; break; } if (cpgType == EnGroupType.XFDan || cpgType == EnGroupType.YaoDan || cpgType == EnGroupType.JiuDan || cpgType == EnGroupType.ZFBDan) { List <int> cardsList = new List <int>(); Dictionary <int, int> dic = new Dictionary <int, int>(); for (int i = 0; i < cards.Count; i++) { if (!dic.ContainsKey(cards[i])) { dic[cards[i]] = 1; cardsList.Add(cards[i]); } else { dic[cards[i]]++; } } GameObject[] xjfdList = new GameObject[cardsList.Count]; for (int i = 0; i < cardsList.Count; i++) { if (dic.ContainsKey(cardsList[i])) { xjfdList[i] = GetUIMahjong(cardsList[i], uiType); if (dic[cardsList[i]] > 1) { //GameObject temp = MahjongUtility.GetScriptableAssets<MahjongMiscAssets>().GetAssetToObj("NumSign" + dic[cardsList[i]]); GameObject temp = GameUtils.GetAssets <GameObject>("NumSign" + dic[cardsList[i]]); temp.SetActive(false); var obj = Instantiate(temp); if (obj != null) { obj.transform.parent = xjfdList[i].transform; obj.transform.localRotation = Quaternion.Euler(0, 0, 0); obj.gameObject.layer = xjfdList[i].gameObject.layer; switch (uiType) { case UIMahjongType.Big: obj.transform.localPosition = new Vector3(-20, -37, 0); obj.transform.localScale = Vector3.one * 0.7f; break; case UIMahjongType.Small: obj.transform.localPosition = new Vector3(-7, -3f, 0); obj.transform.localScale = Vector3.one * 0.4f; break; } obj.SetActive(true); } } } } cardGroup = UiCardGroup.Create(xjfdList, mjSize, isHaveBg ? MahjongCardAssets.TileBackground : null, cpgType); } else { for (int i = 0; i < cards.Count; i++) { //暗杠时显示背面, 第四张要反过来 if (cpgType == EnGroupType.AnGang && i < 3) { list[i] = GetUIMahjongBg(uiType); } else { list[i] = GetUIMahjong(cards[i], uiType); } } cardGroup = UiCardGroup.Create(list, mjSize, isHaveBg ? MahjongCardAssets.TileBackground : null, cpgType); } return(cardGroup); }