public void UpdateLevelsList(string[] queuedLevels) { string[] levels = netManager.GetSupportedNetworkLevels(); Transform availableTransform = lobbyAvailableMaps.transform; foreach (Transform child in availableTransform) { Destroy(child.gameObject); } Transform queuedTransform = lobbyQueuedMaps.transform; foreach (Transform child in queuedTransform) { Destroy(child.gameObject); } for (int i = 0; i < levels.Length; i++) { GameObject newButton = (GameObject)Instantiate(mapButton); Text text = newButton.GetComponentInChildren <Text>(); newButton.transform.SetParent(lobbyAvailableMaps.transform); Button b = newButton.GetComponent <Button>(); text.text = levels[i]; if (!Network.isServer) { b.interactable = false; } string level = levels[i]; b.onClick.AddListener(() => AddLevel(level)); } for (int i = 0; i < queuedLevels.Length; i++) { GameObject newButton = (GameObject)Instantiate(mapButton); Text text = newButton.GetComponentInChildren <Text>(); newButton.transform.SetParent(lobbyQueuedMaps.transform); Button b = newButton.GetComponent <Button>(); text.text = queuedLevels[i]; if (!Network.isServer) { b.interactable = false; } int index = i; b.onClick.AddListener(() => RemoveLevel(index)); } }
// GAME LOBBY void gameLobby() { int btnW = 160; int btnH = 30; int btnX = 200; int btnY = 200; backButtons(true); if (Network.peerType != NetworkPeerType.Disconnected) { if (Network.isServer) { string[] levels = networkManager.GetSupportedNetworkLevels(); for (int i = 0; i < levels.Length; i++) { if (GUI.Button(new Rect(btnX, btnY + (btnH + btnPadding) * i, btnW, btnH), "Add: " + levels[i])) { if (networkManager.queuedLevels.Count < networkManager.maxQueue) { networkManager.queuedLevels.Add(levels[i]); } } } if (GUI.Button(new Rect(btnX * 2, btnY * 2, btnW, btnH), "Start Game")) { if (networkManager.queuedLevels.Count > 0) { if (networkManager.NextLevel()) { ShowMenu(MenuIndex.None); } } } for (int i = 0; i < networkManager.queuedLevels.Count; i++) { if (GUI.Button(new Rect(btnX + (btnW + btnPadding), btnY + (btnH + btnPadding) * i, btnW, btnH), "Remove: " + networkManager.queuedLevels[i])) { networkManager.queuedLevels.RemoveAt(i); } } } } }