using System.Collections.Generic; using System.Linq; using System.Text; using UnityEngine; using UnityEngine.UI; namespace Script.UI { public class GroupPanel : PanelBase { public GameObject item; public Button btn_Close; public override void Init() { base.Init(); btn_Close.onClick.AddListener(ClickClose); } public override void Dispose() { base.Dispose(); btn_Close.onClick.RemoveListener(ClickClose); } public override void Open() { base.Open(); InitItem(); } private void ClickClose() { UIManager.Instance.OpenPanel(PanelType.Finish); } void InitItem() { List cache = new List(GlobalManager.Instance.list); List end = new List(); var num = cache.Count % 2; // 平均后多出来的 var listNum = cache.Count / 2; // var groupAName = ExcelManager.Instance.GetGroupInfoA.groupName; var groupBName = ExcelManager.Instance.GetGroupInfoB.groupName; // A var count = listNum + num; for (int i = 0; i < count; i++) { var range = Random.Range(0, cache.Count - 1); var summaryInfo = cache[range]; summaryInfo.group = groupAName; end.Add(summaryInfo); cache.Remove(summaryInfo); } // B for (int i = 0; i < listNum; i++) { var range = Random.Range(0, cache.Count - 1); var summaryInfo = cache[range]; summaryInfo.group = groupBName; end.Add(summaryInfo); cache.Remove(summaryInfo); } // 排个序 var list = end.OrderBy(t=>t.id).ToList(); StringBuilder sb = new StringBuilder(); foreach (var summaryInfo in list) { item.SetActive(false); GenItem(summaryInfo.id, summaryInfo.group); sb.AppendLine($"选手ID:{summaryInfo.id}"); sb.AppendLine($"选手分组:{summaryInfo.group}"); sb.AppendLine($"\n"); } FileManager.Instance.SavePlayerData(sb.ToString()); } private void GenItem(string id, string group) { var go = GameObject.Instantiate(item, item.transform.parent); go.name = id; var txt_ID = go.transform.Find("txt_ID").GetComponent(); var txt_Group = go.transform.Find("txt_Group").GetComponent(); txt_ID.text = id; txt_Group.text = group; go.SetActive(true); } } }