Exemplo n.º 1
0
    public void MakeRoom() // 방만들기 버튼 UI를 누를 경우
    {
        //UnityEngine.Debug.Log("MakeRoom");
        // Client로서 서버에 잘 연결돼있거나(앞의 두 조건: 2중 체크), 이미 본인이 서버를 호스팅하고 있으면,
        if (NetworkClient.active || NetworkClient.isConnected || NetworkServer.active)
        {
            return;                                                                            // 아무것도 안함.
        }
        CreatePortMapping.Create();
        //_voiceManager.OnParticipantAddedEvent += voiceManager_OnParticipantAddedEvent;  // 참가자 추가 event 구독
        //_voiceManager.OnTextMessageLogReceivedEvent += voiceManager_OnTextMessageLogReceivedEvent;  // message 수신 event 구독
        //SetPlayerName = GameObject.Find("InputName").GetComponent<InputField>().text;

        //LoginToVivoxService(SetPlayerName);  // vivox service에 login
        manager.networkAddress = new WebClient().DownloadString("https://api.ipify.org");
        //this.gameObject.GetComponent<TelepathyTransport>().port =
        manager.StartHost(); // 위와 같은 상황이 아니면, 서버를 호스팅.

        // 호스팅: 본인의 IP로 서버를 만들고, Client로서 이 서버에 참여하게 됨.
        if (NetworkClient.isConnected && !ClientScene.ready)     // Client로서 서버에 연결은 됐는데, Client에 게임을 로드할 준비까지는 안됐었다면,
        {
            ClientScene.Ready(NetworkClient.connection);         // 해당 준비를 마치고,
            if (ClientScene.localPlayer == null)                 // 플레이어로 서버에 등록이 안됐다면,
            {
                ClientScene.AddPlayer(NetworkClient.connection); // 서버에 플레이어로 등록한다.
            }
        }
    }
Exemplo n.º 2
0
    IEnumerator CreateMappingInvoke()
    {
        while (true)
        {
            yield return(new WaitForSeconds(5));

            CreatePortMapping.Create();
            if (!(SceneManager.GetActiveScene().name == "Lobby"))
            {
                break;
            }
        }
    }