//通过麻将的位置进行排序 int Compare_Card(Crad p1, Crad p2) { int res = 0; if (p1.x >= p2.x) { res = 1; } else { res = -1; } return(res); }
//初始化牌的排序 public void Sort_AllCard() { List <Crad> jong = new List <Crad>(); Mahjong[] mahjong = MahjongManger.Instance.GetSelfCard(); for (int i = 0; i < mahjong.Length; i++) { Crad card = new Crad(); card.mah = mahjong[i]; card.x = mahjong[i].transform.localPosition.x; jong.Add(card); } jong.Sort(Compare_Card); //先确定第一张牌的位置 float firstPos = 0f; if (jong[0].x == MahjongManger.Instance.FirstPos.x) { firstPos = MahjongManger.Instance.FirstPos.x; } else { if (MahjongManger.Instance.FirstPos.x < jong[0].x) { firstPos = jong[0].x; } else { firstPos = MahjongManger.Instance.FirstPos.x; } } //遍历如果所有牌的位置,判断是否正确 for (int i = 0; i < jong.Count - 1; i++) { Debug.LogWarning("pos:" + jong[i].x + ",value:" + jong[i].mah.bMahjongValue + ",id:" + jong[i].mah.iMahId); if (jong[i].mah.transform.localPosition != new Vector3(firstPos + 85f * i, jong[i].mah.transform.localPosition.y, 0)) { jong[i].mah.transform.localPosition = new Vector3(firstPos + 85f * i, jong[i].mah.transform.localPosition.y, 0); Debug.LogWarning("pos:" + firstPos); } } }