Ejemplo n.º 1
0
    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));
        }
    }
Ejemplo n.º 2
0
    // 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);
                    }
                }
            }
        }
    }