void ShowServers() { int page = GameCenter.loginMng.CurServerPage; List <ServerChoiceData> serverChoiceList = serverChoiceDic.ContainsKey(page)?serverChoiceDic[page]:new List <ServerChoiceData>(); for (int i = 0, max = serverChoiceItems.Count; i < max; i++) { if (serverChoiceItems[i] != null) { serverChoiceItems[i].SetUnChecked(); serverChoiceItems[i].gameObject.SetActive(false); } } ServerChoiceItem lastServer = null; for (int i = 0, max = serverChoiceList.Count; i < max; i++) { ServerChoiceItem serverChoiceItem = null; if (serverChoiceItems.Count <= i) { if (serverItem != null && serversPanel != null) { serverChoiceItem = serverItem.CreateNew(serverGrid.transform); serverChoiceItems.Add(serverChoiceItem); } } serverChoiceItem = serverChoiceItems.Count > i?serverChoiceItems[i]:null; if (serverChoiceItem != null) { serverChoiceItem.gameObject.SetActive(true); serverChoiceItem.SetData(serverChoiceList[i], OnChooseServer); if (i == 0) //默认选中第一个 { lastServer = serverChoiceItems[i]; } } } if (serverGrid != null) { serverGrid.repositionNow = true; } if (lastServer != null) { lastServer.SetChecked(); } }
public ServerChoiceItem CreateNew(Transform _parent) { ServerChoiceItem serverChoiceItem = null; GameObject go = Instantiate(this.gameObject) as GameObject; if (go != null) { go.transform.parent = _parent; go.SetActive(true); go.transform.localPosition = Vector3.zero; go.transform.localScale = Vector3.one; serverChoiceItem = go.GetComponent <ServerChoiceItem>(); if (serverChoiceItem == null) { serverChoiceItem = go.AddComponent <ServerChoiceItem>(); } } return(serverChoiceItem); }