コード例 #1
0
    void Start()
    {
        searchPanel.SetActive(false);
        gameConfiguration = FindObjectOfType <GameConfiguration>();
        searchGlass       = FindObjectOfType <SearchGlass>();

        StartCoroutine(HidePanel());

        IEnumerator HidePanel()
        {
            yield return(new WaitForSeconds(1f));

            switch (gameConfiguration.role)
            {
            case 0:
                NetworkManager.singleton.StartHost();
                networkDiscovery.AdvertiseServer();

                loadingPanel.SetActive(false);

                break;

            case 1:
                searchPanel.SetActive(true);
                loadingPanel.SetActive(false);
                networkDiscovery.StartDiscovery();
                StartCoroutine(UpdateAndAttemptConnection());

                break;
            }
        }
    }
コード例 #2
0
    IEnumerator UpdateAndAttemptConnection()
    {
        bool connected = false;

        while (!connected)
        {
            if (discoveredServers.Count != 0)
            {
                foreach (var info in discoveredServers.Values)
                {
                    Connect(info);

                    searchGlass = FindObjectOfType <SearchGlass>();
                    searchGlass.DisablePanel();

                    connected = true;
                }
            }

            yield return(new WaitForSeconds(0.5f));
        }
    }